Bergskedja | 프로그래밍의 벗 PivotOJ
PivotOJ

Bergskedja

시간 제한: 6000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2015 — onlinekvalBOJ 26889
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

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 NN 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 NN. De följande NN raderna innehåller vardera två heltal XX och YY, 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.

Ett svar på det här problemet kommer att räknas som korrekt om det absoluta felet är mindre än 10310^{-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.

힌트

[이미지 1]

En illustration av det första exemplet.

예제

예제 1

입력
3
2 2
3 2
6 1
출력
6.75

예제 2

입력
5
3 3
6 2
6 4
10 1
-3 2
출력
25.75

예제 3

입력
3
-100000 10000
0 9999
100000 10000
출력
299980001
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.