#abc296g. [abc296_g]Polygon and Points

[abc296_g]Polygon and Points

题目描述

在二维坐标平面上,存在一个凸 NN 边形 SS,其中正向 xx 轴指向右边,正向 yy 轴指向上方。SS 的顶点按逆时针顺序给出,坐标分别为 (X1,Y1),ldots,(XN,YN)(X_1,Y_1),\\ldots,(X_N,Y_N)

对于每个点 (Ai,Bi)(A_i,B_i),回答以下问题:该点是在 SS 内部,外部,还是在 SS 的边界上?

约束条件

  • 3leqNleq2times1053 \\leq N \\leq 2\\times 10^5
  • 1leqQleq2times1051 \\leq Q \\leq 2\\times 10^5
  • \-109leqXi,Yi,Ai,Bileq109\-10^9 \\leq X_i,Y_i,A_i,B_i \\leq 10^9
  • SS 是一个严格凸的 NN 边形,即其内角都小于 180180 度。
  • (X1,Y1),ldots,(XN,YN)(X_1,Y_1),\\ldots,(X_N,Y_N)SS 的顶点,按逆时针顺序给出。
  • 输入中的所有值都是整数。

输入

从标准输入读入输入数据,格式如下:

NN X1X_1 Y1Y_1 vdots\\vdots XNX_N YNY_N QQ A1A_1 B1B_1 vdots\\vdots AQA_Q BQB_Q

输出

输出包含 QQ 行。第 ii 行应该输出 IN,如果点 (Ai,Bi)(A_i,B_i)SS 内部(不在边界上);输出 OUT,如果点在 SS 外部(不在边界上);输出 ON,如果它在 SS 的边界上。

示例输入 1

4
0 4
-2 2
-1 0
3 1
3
-1 3
0 2
2 0

示例输出 1

ON
IN
OUT

下图展示了 SS 和给定的三个点。第一个点在 SS 的边界上,第二个点在 SS 内部,第三个点在 SS 外部。

Figure

示例输入 2

3
0 0
1 0
0 1
3
0 0
1 0
0 1

示例输出 2

ON
ON
ON