098 - Polygon and Point Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 1000

問題文

N 個の点 P_1, P_2, \dots, P_N を頂点とする多角形があります。点 P_i の座標は (X_i, Y_i) であり、P_iP_{i+1} を結ぶ線分 (i = 1, 2, \dots, N-1) は多角形の辺です。また、P_NP_1 を結ぶ線分も多角形の辺です。

座標 (A, B) が多角形の内部に含まれているかどうかを判定するプログラムを作成してください。

制約

  • 3 \leq N \leq 100000
  • -10^9 \leqq X_i \leqq 10^9
  • -10^9 \leqq Y_i \leqq 10^9
  • -10^9 \leqq A \leqq 10^9
  • -10^9 \leqq B \leqq 10^9
  • (A, B) は多角形の辺上にはない
  • 多角形の内角がちょうど 180^{\circ} になることはない
  • 入力はすべて整数

入力

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

N
X_1 Y_1
X_2 Y_2
\vdots
X_N Y_N
A B

出力

座標 (A, B) が多角形の内部に含まれるなら INSIDE、外部に含まれるなら OUTSIDE と出力してください。

部分点

この問題では、多角形が凸多角形であるケースにすべて正解すれば、部分点として 500 点を獲得します。


入力例 1

4
0 0
3 1
2 3
0 3
2 1

出力例 1

INSIDE

多角形は以下の図のようになり、座標 (2, 1) の点はその内部に含まれます。


入力例 2

4
3 1
0 0
0 3
2 3
3 2

出力例 2

OUTSIDE

多角形は以下の図のようになり、座標 (3, 2) の点はその外部にあります。


入力例 3

6
5 5
-1 -3
5 1
-3 -5
1 1
-5 -3
0 -1

出力例 3

INSIDE

多角形は以下の図のようになり、座標 (0, -1) の点はその内部に含まれます。


入力例 4

16
0 0
8 0
8 7
7 7
7 1
1 1
1 6
5 6
5 3
3 3
3 5
2 5
2 2
6 2
6 7
0 7
4 4

出力例 4

OUTSIDE

多角形は以下の図のようになり、座標 (4, 4) の点はその外部にあります。


入力例 5

3
0 0
1000000000 671903261
671903261 1000000000
520908341 350000013

出力例 5

OUTSIDE

この入力例では、点と多角形は非常に近く、距離 10^{-9} 程度しか離れていませんが、点は多角形の外部にあります。