Problem2613--Mirrors[USACO-2013-Jan-B]

2613: Mirrors[USACO-2013-Jan-B]

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Status] [Submit] [Creator:]

Description

Farmer John的奶牛们总是在农场周围制造各种麻烦,所以FJ想更多的关注一下他们。他在农场的不同位置安装N(1≤N≤200)个反射栅栏,这样他就能够从他家里的位置(0,0)看到位置为(a,b)的牛棚了.
把FJ的农场看做是一个2维的地图,栅栏i是以(x_i,y_i)为中心并倾斜45度的短线段(类似"/"或者"\")。例如在点(3,5)处有一个朝向为"/"的栅栏,那么这个栅栏就可以表示为从点(2.9,4.9)到点(3.1,5.1)的一个线段。
每个栅栏的位置(以及牛棚的位置)都不相同,栅栏的坐标位置的范围是-1000000到1000000,并且没有任何栅栏的是位置是(0,0)或(a,b)。
FJ计划坐在家里(0,0)的位置,并且只往右看(即+x的方向)。他希望通过农场上的反射栅栏的层层反射,最终他能够看到牛棚的位置(a,b)。不巧的是,FJ想到其中有一个反射栅栏的朝向可能弄反了(比如"/"应该是"\")。
请输出一个栅栏的编号,通过转换这个栅栏的方向,和后面其他栅栏的层层反射,使得FJ最终看到了点(a,b)。如果FJ不需要转换任何栅栏的反射他就能看到点(a,b),输出0,如果即使转换单个栅栏的朝向后他仍然无法看到点(a,b),输出-1

Input

第一行,三个整数N,a,b
接下来N行,描述N个栅栏,格式为"x_i y_i /"或者是"x_i y_i \",表示栅栏i的中心位置是(x_i,y_i)朝向是"/"或者是"\"

Output

一行,一个整数,表示一个栅栏的编号,通过转换这个栅栏的方向,和后面其他栅栏的层层反射,使得最终FJ看到了点(a,b)。

Sample Input Copy

5 6 2
3 0 /
0 2 /
1 2 /
3 2 \
1 3 \

Sample Output Copy

4

HINT

样例说明:
我们把输入样例中的栅栏和点描述在2维的平面内,如下所示,其中"H"表示FJ的加的位置,"B"表示牛棚的位置
3 .\.....
2 //.\..B
1 .......
0 H../...
  0123456
我们改变了栅栏(3,2)的朝向,并且通过这个栅栏的反射,最终看到了点(a,b)即牛棚的位置。
3 .\.....
2 //./<-B
1 ...|...
0 H<-/...
  0123456
栅栏(3,2)是输入的第4个栅栏,所以输出答案是4.

Source/Category