atcoder#ABC296G. [ABC296G] Polygon and Points

[ABC296G] Polygon and Points

题目描述

x x 軸の正の向きを右、y y 軸の正の向きを上とする 2 2 次元座標平面上に、凸 N N 角形 S S があります。S S の頂点の座標は、反時計回りに (X1,Y1),,(XN,YN) (X_1,Y_1),\ldots,(X_N,Y_N) です。

Q Q 個の点 (Ai,Bi) (A_i,B_i) について、それぞれ S S の内部・外部・境界上のいずれにあるか求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N X1 X_1 Y1 Y_1 \vdots XN X_N YN Y_N Q Q A1 A_1 B1 B_1 \vdots AQ A_Q BQ B_Q

输出格式

Q Q 行出力せよ。i i 行目には、(Ai,Bi) (A_i,B_i) S S の内部(境界含まず)にあるとき IN、外部(境界含まず)にあるとき OUT、境界上にあるとき ON と出力せよ。

题目大意

在平面直角坐标系上给定一个 nn 个点的凸多边形,顶点均为整点,并按照逆时针顺序给出。

接下来有 QQ 个询问,每个询问给出一个整点,输出其是在多边形内部、外部或是边上。

Translated by

https://www.luogu.com.cn/user/399150

4
0 4
-2 2
-1 0
3 1
3
-1 3
0 2
2 0
ON
IN
OUT
3
0 0
1 0
0 1
3
0 0
1 0
0 1
ON
ON
ON

提示

制約

  • 3  N  2× 105 3\ \leq\ N\ \leq\ 2\times\ 10^5
  • 1  Q  2× 105 1\ \leq\ Q\ \leq\ 2\times\ 10^5
  • 109  Xi,Yi,Ai,Bi  109 -10^9\ \leq\ X_i,Y_i,A_i,B_i\ \leq\ 10^9
  • S S は狭義凸 N N 角形である。すなわち、全ての内角は 180 180 度未満である。
  • (X1,Y1),,(XN,YN) (X_1,Y_1),\ldots,(X_N,Y_N) S S の頂点を反時計回りに列挙したものである。
  • 入力は全て整数である。

Sample Explanation 1

S S 及び 与えられた 3 3 個の点は下図の通りです。1 1 番目の点は S S の境界上、2 2 番目の点は内部、3 3 番目の点は外部にあります。 ![図](https://img.atcoder.jp/abc296/828da6ca52e6b48a908ad06fa59eb9cb.png)