#4943. [USACO13JAN] Mirrors B
[USACO13JAN] Mirrors B
题目描述
农夫约翰的奶牛在农场里制造了太多麻烦,因此他决定安装N面反射围栏(1 ≤ N ≤ 200)来更好地监视它们。他希望通过从位于(0,0)的房子看向位于(a,b)的谷仓时,光线能通过围栏的反射最终到达谷仓。
在农场的二维地图上:
- 每面围栏i位于整数坐标(x_i,y_i)
- 围栏呈45度倾斜,方向为'/'或''
- 所有围栏和谷仓的位置坐标都是唯一的整数,范围在-1,000,000到1,000,000之间
- (0,0)和(a,b)处没有围栏
约翰从(0,0)出发,初始视线向右(+x方向)。光线会在围栏上反射,最终可能到达(a,b)。约翰怀疑自己可能安装错了一面围栏的方向(把'/'装成''或反之)。
请找出第一面需要改变方向的围栏的编号(输入顺序从1开始),使得改变后光线能到达(a,b)。如果已经能直接看到则输出0,如果无论如何调整都无法看到则输出-1。
输入格式
第一行:三个整数N, a, b
接下来N行:每行描述一面围栏,格式为"x_i y_i /"或"x_i y_i "
输出格式
一个整数,表示需要调整的围栏编号(按输入顺序),0表示已满足条件,-1表示无法满足
输入输出样例
输入 #1
5 6 2
3 0 /
0 2 /
1 2 /
3 2 \
1 3 \
输出 #1
4
样例解释
农场布局(H=房子,B=谷仓):
3 .\.....
2 //.\..B
1 .......
0 H../...
0123456
调整第4面围栏(位于(3,2))的方向后,光线路径变为:
3 .\.....
2 //./--B
1 ...|...
0 H--/...
0123456
此时光线能成功到达谷仓,因此输出4(第4面围栏)。