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:
Börja med att rita ut marken som en horisontell linje.
Välj sedan ut ett antal punkter ovanför marken. Dessa punkter kommer representera bergstoppar.
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.
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.
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.
Ditt program ska skriva ut ett tal på en rad, den totala arean som behöver fyllas i.
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$ |
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 |