Winding Number
题号:NC232714
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

n个点(px,py)牛妹从第1个点开始走,经过第2,3,...,n个点,最后回到第1个点。
牛牛会站在点(qx,qy)上看着牛妹从第1个点开始走,最后回到第1个点。牛牛想知道在这个过程中自己逆时针转的圈数减去顺时针转的圈数的结果是多少。
m个查询,每次询问如果牛牛站在(qx_i,qy_i)上时的结果。

输入描述:

第一行包含一个正整数
接下来n行,第i行包含两个整数,保证相邻两个点不相同。
接下来一行包含一个正整数
接下来m行,第i行包含两个整数

输出描述:

输出m行,第i行输出牛牛站在(qx_i,qy_i)时,逆时针圈数减顺时针圈数的结果。特别的,若牛牛站在牛妹走的路径上,则输出"EDGE"。
示例1

输入

复制
8
-2 -2
-5 1
-2 4
1 3
-2 0
-3 1
-2 2
1 1
3
-2 1
0 0
1 2

输出

复制
-2
EDGE
0

备注:

原题链接:https://acm.timus.ru/problem.aspx?space=1&num=1599