#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面围栏)。