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 arbori, aflați la coordonate întregi, cu lățimea de metru. Nu există doi arbori la aceeași coordonată sau . Mai exact, și pentru orice .
Ș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 nu este validă dacă există o altă regiune dreptunghiulară, cu laturile paralele cu axele, care nu conține niciun arbore, iar .
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 ) și cea albastră (de arie ).
Care este suma ariilor tuturor regiunilor valide posibile?
Rezultatul se va afișa modulo .
Date de intrare
Fișierul de intrare primar.in
conține pe prima linie , numărul de arbori. Pe următoarele linii se vor găsi câte două valori întregi , () 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 .
Restricții și precizări
- Pentru toate subtask-urile, și , pentru orice .
# | Punctaj | Restricții |
---|---|---|
1 | 12 | , și |
2 | 10 | , și |
3 | 12 | , și |
4 | 32 | , și |
5 | 18 | , și |
6 | 16 | , și |
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