Start

2019-11-08 23:34 CET

Dagy Svår Tävling 3

End

2019-11-15 23:34 CET
The end is near!
Contest is over.
Not yet started.
Contest is starting in -1870 days 5:12:13

Time elapsed

168:00:00

Time remaining

0:00:00

Problem D
Bergskedja

Markus blir ofta uttråkad på mattelektionerna, och har därför börjat rita olika landskap i sitt räkneblock. Han har till exempel upptäckt följande procedur för att enkelt rita en snygg bergskedja:

  1. Börja med att rita ut marken som en horisontell linje.

  2. Välj sedan ut ett antal punkter ovanför marken. Dessa punkter kommer representera bergstoppar.

  3. Från varje punkt drar man sedan två linjer som skär marken i 45 graders vinkel, vilket skapar ett antal likbenta rätvinkliga triangelar.

  4. Fyll sedan i trianglarna. Notera att trianglarna kan överlappa, och att man då inte behöver fylla i alla helt.

Givet $N$ punkter som ritats ut ovanför marken, beräkna arean som behöver fyllas i för att skapa bergskedjan.

Input

Den första raden innehåller talet $N$. De följande $N$ raderna innehåller vardera två heltal $X$ och $Y$, separerade med mellanslag. Dessa beskriver koordinaterna för de punkter som ritats ut.

Output

Ditt program ska skriva ut ett tal på en rad, den totala arean som behöver fyllas i.

Förklaring av exempel

\includegraphics[width=0.7\textwidth ]{bergskedja.png}
Figure 1: En illustration av det första exemplet.

Poängsättning

Din lösning kommer att testas på en mängd testfallsgrupper. För att få poäng för en grupp så måste du klara alla testfall i gruppen.

Grupp

Poängvärde

Gränser

1

20

$1 \le N \le 100, -100 \le X \le 100, 0 \le Y \le 100$

2

20

$1 \le N \le 100\, 000, -1\, 000 \le X \le 1\, 000, 0 \le Y \le 1\, 000$

3

60

$1 \le N\le 100\, 000, -100\, 000 \le X \le 100\, 000, 0 \le Y \le 10\, 000$

Precision

Ett svar på det här problemet kommer att räknas som korrekt om det absoluta felet är mindre än $10^{-3}$. Notera att man för full poäng behöver kunna skriva ut svar med många siffrors precision (se exempel 3). Om man till exempel kör C++ och cout så kommer man därför behöva ange vilken precision man vill ha innan man skriver ut svaret.

Sample Input 1 Sample Output 1
3
2 2
3 2
6 1
6.75
Sample Input 2 Sample Output 2
5
3 3
6 2
6 4
10 1
-3 2
25.75
Sample Input 3 Sample Output 3
3
-100000 10000
0 9999
100000 10000
299980001