atcoder#ABC296G. [ABC296G] Polygon and Points

[ABC296G] Polygon and Points

配点 : 600600

問題文

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

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

制約

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

入力

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

NN

X1X_1 Y1Y_1

\vdots

XNX_N YNY_N

QQ

A1A_1 B1B_1

\vdots

AQA_Q BQB_Q

出力

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

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

SS 及び 与えられた 33 個の点は下図の通りです。11 番目の点は SS の境界上、22 番目の点は内部、33 番目の点は外部にあります。

図

3
0 0
1 0
0 1
3
0 0
1 0
0 1
ON
ON
ON