QOJ.ac

QOJ

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

#1196. Región divertida

Statistics

La Dra. Ciel vive en una isla plana con una costa poligonal. Le encanta pasear por la isla siguiendo caminos espirales. Aquí, un camino se llama espiral si se cumplen las dos condiciones siguientes.

  • El camino es una poligonal simple en el plano, sin autointersecciones.

  • En todos sus vértices, las direcciones de los segmentos giran en sentido horario.

A continuación se muestran cuatro caminos. Los círculos representan los puntos de partida y las puntas de flecha representan los destinos de los caminos. De estos caminos, solo el situado más a la izquierda es espiral.

problem_1196_cf701760616e3bfd81e089fed289c4fe.png

La Dra. Ciel considera que un punto es divertido si, para cada vértice de la costa de la isla, existe un camino espiral que comienza en ese punto, termina en ese vértice y no cruza la costa. El camino espiral puede tocar la costa o superponerse a ella.

En la siguiente figura, el polígono exterior representa una costa. El punto marcado con una estrella es divertido, mientras que el punto marcado con una cruz no lo es. Las poligonales punteadas que comienzan en la estrella son caminos espirales válidos que terminan en vértices de la costa.

problem_1196_52f14d8731352232cdc93aa21240b90d.png

Se puede demostrar que el conjunto de todos los puntos divertidos forma una región conexa (posiblemente vacía), que llamamos región divertida. Dada la costa, tu tarea es escribir un programa que calcule el área de la región divertida.

Entrada

La primera línea de la entrada contiene un entero $n$: el número de vértices del polígono que representa la costa ($3 \le n \le 2000$). Cada una de las siguientes $n$ líneas contiene dos enteros $x_i$ e $y_i$, que dan las coordenadas $(x_i,y_i)$ del $i$-ésimo vértice del polígono, en orden antihorario. Tanto $x_i$ como $y_i$ están entre $0$ y $10^4$, inclusive. El eje $x$ del sistema de coordenadas apunta hacia la derecha y el eje $y$ hacia arriba. El polígono es simple, es decir, no se cruza ni se toca a sí mismo. El polígono puede ser no convexo. Se garantiza que el ángulo interior de cada vértice no es exactamente de $180$ grados.

Salida

Imprime en una línea el área de la región divertida. Se permiten errores absolutos o relativos menores que $10^{-7}$.

Ejemplos

Entrada 1

4
10 0
20 10
10 30
0 10

Salida 1

300.00

Entrada 2

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

Salida 2

12658.3130191

Entrada 3

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

Salida 3

0.0

Nota

La siguiente figura visualiza los tres ejemplos dados. Los polígonos exteriores corresponden a las costas de las islas. Las regiones divertidas se muestran como áreas grises.

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.