#P1912. A highway and the seven dwarfs

A highway and the seven dwarfs

描述描述
从前,有一片土地上居住着若干矮人家族,这片土地被称为矮人国。每个家族都住在一座房子里。矮人常常拜访其他家族的朋友。由于矮人国没有邪恶势力,在一段时间内,每个矮人都会拜访其他所有矮人。

有一次,生活在矮人国周边的人类决定修建若干条笔直的公路。由于人类并不知晓矮人的存在,一些规划中的公路会穿过矮人国。矮人发现后十分不悦。他们身材矮小,行动迟缓,无法安全穿过公路。

矮人设法获取了公路的规划图,现在需要你的帮助。他们希望继续互相拜访,因此不喜欢那些将他们的房子分成两个非空部分的公路。一旦找出这些不受欢迎的公路,他们就会用魔法阻止人类修建。

矮人太小了,无法操作键盘,于是向你求助。

任务
给定平面上的NN个点(代表房子)和若干条直线(代表公路)。对于每条给定直线,你需要判断所有NN个点是否都位于该直线的同一侧。你的程序必须在读取下一条直线的描述之前,输出当前处理直线的结果。假设没有公路经过任何房子。

输入输入
程序从标准输入读取数据,并向标准输出写入结果。输入的第一行包含一个整数NN0N1000000 \leq N \leq 100000)。接下来NN行,第ii行包含两个实数xi,yix_i, y_i109xi,yi109-10^9 \leq x_i, y_i \leq 10^9),以空格分隔,表示第ii座房子的坐标。

后续每行包含四个实数X1,Y1,X2,Y2X_1, Y_1, X_2, Y_2109X1,Y1,X2,Y2109-10^9 \leq X_1, Y_1, X_2, Y_2 \leq 10^9),以空格分隔,代表公路上两个不同点[X1,Y1][X_1, Y_1][X2,Y2][X_2, Y_2]的坐标。

输出输出
对于每行输入的直线,若所有给定点均位于该直线的同一侧,输出字符串"GOOD";若直线将点分成两部分,输出"BAD"。

输入数据

4
0.0 0
6.00 -0.001
3.125 4.747
4.747 0.47
5 3 7 0
4 -4.7 7 4.7
4 47 4 94

输入数据

GOOD
BAD
BAD