QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#1196. Zabawny obszar

Statistics

Dr Ciel mieszka na płaskiej wyspie o wielokątnej linii brzegowej. Uwielbia spacerować po wyspie wzdłuż spiralnych ścieżek. Tutaj ścieżkę nazywamy spiralną, jeśli spełnia oba następujące warunki.

  • Ścieżka jest prostą łamaną na płaszczyźnie, bez samoprzecięć.

  • W każdym jej wierzchołku kierunki odcinków skręcają zgodnie z ruchem wskazówek zegara.

Poniżej przedstawiono cztery ścieżki. Kółka oznaczają punkty początkowe, a groty strzałek — punkty końcowe ścieżek. Spośród tych ścieżek tylko skrajna lewa jest spiralna.

problem_1196_cf701760616e3bfd81e089fed289c4fe.png

Dr Ciel uważa punkt za zabawny, jeśli dla każdego wierzchołka linii brzegowej wyspy istnieje spiralna ścieżka rozpoczynająca się w tym punkcie, kończąca się w tym wierzchołku i nieprzecinająca linii brzegowej. Ścieżka spiralna może przy tym dotykać linii brzegowej lub się z nią pokrywać.

Na poniższym rysunku zewnętrzny wielokąt przedstawia linię brzegową. Punkt oznaczony gwiazdką jest zabawny, natomiast punkt oznaczony krzyżykiem nie jest zabawny. Kropkowane łamane rozpoczynające się przy gwiazdce są poprawnymi spiralnymi ścieżkami kończącymi się w wierzchołkach linii brzegowej.

problem_1196_52f14d8731352232cdc93aa21240b90d.png

Można udowodnić, że zbiór wszystkich zabawnych punktów tworzy spójny obszar (być może pusty), który nazywamy zabawnym obszarem. Mając daną linię brzegową, napisz program obliczający pole zabawnego obszaru.

Wejście

Pierwszy wiersz wejścia zawiera jedną liczbę całkowitą $n$ — liczbę wierzchołków wielokąta przedstawiającego linię brzegową ($3 \le n \le 2000$). Każdy z kolejnych $n$ wierszy zawiera dwie liczby całkowite $x_i$ i $y_i$, które podają współrzędne $(x_i,y_i)$ $i$-tego wierzchołka wielokąta, w kolejności przeciwnej do ruchu wskazówek zegara. Wartości $x_i$ i $y_i$ należą do przedziału od $0$ do $10^4$ włącznie. Oś $x$ układu współrzędnych jest skierowana w prawo, a oś $y$ w górę. Wielokąt jest prosty, czyli nie przecina ani nie dotyka samego siebie. Wielokąt może być niewypukły. Gwarantuje się, że kąt wewnętrzny przy każdym wierzchołku nie wynosi dokładnie $180$ stopni.

Wyjście

Wypisz w jednym wierszu pole zabawnego obszaru. Dopuszczalny jest błąd bezwzględny lub względny mniejszy niż $10^{-7}$.

Przykład

Wejście 1

4
10 0
20 10
10 30
0 10

Wyjście 1

300.00

Wejście 2

10
145 269
299 271
343 193
183 139
408 181
356 324
176 327
147 404
334 434
102 424

Wyjście 2

12658.3130191

Wejście 3

6
144 401
297 322
114 282
372 178
197 271
368 305

Wyjście 3

0.0

Uwagi

Poniższy rysunek przedstawia trzy podane przykłady. Zewnętrzne wielokąty odpowiadają liniom brzegowym wysp. Zabawne obszary zaznaczono na szaro.

problem_1196_545a943af673d62e792d21846d008699.png

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.