QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100 ハック可能 ✓

#17534. Prisión

統計

$Q$ prisioneros están encerrados en una prisión de plano de coordenadas, famosa por ser ineludible debido a que su área es infinita.

El guardia que vigila la prisión se encuentra en el origen y posee un campo de visión. Se sabe que el campo de visión del guardia satisface las siguientes condiciones:

  • El campo de visión del guardia está delimitado por un polígono simple con $N$ vértices. El interior del polígono, incluyendo sus segmentos, es el interior del campo de visión, mientras que el exterior, excluyendo los segmentos, es el exterior del campo de visión.
  • Si el guardia puede ver un punto específico, también puede ver cualquier punto más cercano en esa misma dirección. Estrictamente hablando, para cualquier punto dentro del campo de visión, todos los puntos en el segmento que conecta dicho punto con el origen también están dentro del campo de visión.
  • El área alrededor del origen siempre es visible para el guardia. Estrictamente hablando, existe un $\varepsilon > 0$ tal que el círculo centrado en el origen con radio $\varepsilon$ está contenido dentro del campo de visión del guardia.

Los $Q$ prisioneros encerrados en esta prisión, en un esfuerzo por obtener aunque sea un poco de libertad, están colaborando para intentar escapar del campo de visión del guardia. Para escapar del campo de visión de manera más efectiva, para todo $2 \leq i \leq Q$, el prisionero $i$ se mueve secuencialmente de la siguiente manera, dependiendo de si el prisionero $(i-1)$ está dentro del campo de visión:

  • Si el prisionero $(i-1)$ estaba dentro del campo de visión después de moverse, el prisionero $i$ mira en la dirección opuesta a la del prisionero $(i-1)$ y se mueve una distancia igual a la distancia entre ambos.
  • Si el prisionero $(i-1)$ estaba fuera del campo de visión después de moverse, el prisionero $i$ mira en la dirección del prisionero $(i-1)$ y se mueve la mitad de la distancia entre ambos. Sin embargo, dado que los puntos que no son puntos de rejilla entera son incómodos para permanecer, después de moverse, el prisionero se desplaza al punto de rejilla entera más cercano al punto resultante, y en caso de empate, al más cercano al origen.

Usted, que valora la libertad, ha obtenido información sobre el campo de visión del guardia de una fuente confiable y desea utilizarla para informar a los prisioneros si se encuentran dentro o fuera del campo de visión. Dada la posición inicial de los prisioneros, escriba un programa que determine si cada prisionero está dentro o fuera del campo de visión después de su movimiento.

Entrada

La primera línea contiene $N$ y $Q$. ($3 \leq N \leq 100\,000; 1 \leq Q \leq 100\,000$)

Desde la segunda línea, se proporcionan $N$ líneas con las coordenadas $(x_i, y_i)$ de los vértices del campo de visión en sentido antihorario. Se garantiza que el polígono dado satisface las condiciones del problema. ($-10^6 \leq x_i, y_i \leq 10^6$)

Desde la línea $(N+2)$, se proporcionan $Q$ líneas con la posición inicial $(x_j, y_j)$ de cada prisionero. ($-10^6 \leq x_j, y_j \leq 10^6$)

Todas las coordenadas proporcionadas son números enteros.

Salida

Desde $i=1$ hasta $i=Q$, imprima en la $i$-ésima línea 1 si el $i$-ésimo prisionero está dentro del campo de visión, y 0 en caso contrario.

Ejemplos

Entrada 1

3 3
-1 -1
9 -1
-1 9
2 2
-2 3
8 0

Salida 1

1
0
1

Entrada 2

6 5
0 -2
3 -10
14 -3
5 0
10 10
-5 5
0 0
-2 0
6 4
5 -5
-3 11

Salida 2

1
0
1
0
1

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.