primar

Time limit: 0.25s Memory limit: 256MB Input: primar.in Output: primar.out

Primarul orașului tocmai a aprobat un proiect pentru construirea unui ștrand la periferia localității. Zona pe care se dorește a fi amplasat ștrandul se poate identifica cu planul 2D (infinit). Aceasta conține NN arbori, aflați la coordonate întregi, cu lățimea de 11 metru. Nu există doi arbori la aceeași coordonată xx sau yy. Mai exact, xixjx_i \neq x_j și yiyjy_i \neq y_j pentru orice iji \neq j.

Ștrandul nu poate fi amplasat decât în locații de forma unui dreptunghi cu laturile paralele cu axele, care, din motive de sustenabilitate, nu trebuie să conțină în interiorul său niciunul dintre arbori.

Mai mult, deoarece bugetul pentru acest proiect este foarte generos, primarul este interesat doar de acele zone maximale (care nu pot fi extinse). Cu alte cuvinte, o regiune SS nu este validă dacă există o altă regiune SSS' \neq S dreptunghiulară, cu laturile paralele cu axele, care nu conține niciun arbore, iar SSS \subset S'.

De exemplu, pentru cazul ilustrat în figura alăturată (primul din secțiunea de exemple) se disting două posibilități valide de amplasare a ștrandului: cea roșie (de arie 2×6=122 \times 6 = 12) și cea albastră (de arie 4×5=204 \times 5 = 20).

Care este suma ariilor tuturor regiunilor valide posibile?

Rezultatul se va afișa modulo 109+710^9 + 7.

Date de intrare

Fișierul de intrare primar.in conține pe prima linie NN, numărul de arbori. Pe următoarele NN linii se vor găsi câte două valori întregi xix_i, yiy_i (1iN1 \leq i \leq N) separate printr-un spațiu, reprezentând coordonatele arborilor.

Date de ieșire

Fișierul de ieșire primar.out va conține un singur număr natural, reprezentând suma ariilor tuturor regiunilor valide, modulo 109+710^9 + 7.

Restricții și precizări

  • Pentru toate subtask-urile, xixjx_i \neq x_j și yiyjy_i \neq y_j, pentru orice iji \neq j.
# Punctaj Restricții
1 12 xix_i , yi10y_i \leq 10 și N4N \leq 4
2 10 xix_i , yi20y_i \leq 20 și N20N \leq 20
3 12 xix_i , yi120y_i \leq 120 și N120N \leq 120
4 32 xix_i , yi500y_i \leq 500 și N500N \leq 500
5 18 xix_i , yi106y_i \leq 10^6 și N1 500N \leq 1 \ 500
6 16 xix_i , yi106y_i \leq 10^6 și N5 000N \leq 5 \ 000

Exemplul 1

primar.in

5
1 4
4 3
2 2
6 6
3 9

primar.out

32

Exemplul 2

primar.in

2
1 1
2 3

primar.out

0

Exemplul 3

primar.in

7
1 1
2 5
4 2
3 7
8 3
9 6
10 4

primar.out

52

Log in or sign up to be able to send submissions!