거울
시간 제한1초메모리 제한128 MB
45도로 기울어진 N개의 작은 거울이 있을 때, 하나를 뒤집어 원점에서 오른쪽으로 나간 빛이 (a,b)에 도달하게 하는 첫 번째 거울의 번호를 구한다.
문제
농부 존(Farmer John)의 소들이 농장 곳곳에서 말썽을 부려서, 존은 소들을 더 잘 감시하고 싶어 합니다. 그는 농장 여러 곳에 반사 울타리(거울) 개()를 설치하여, 자신의 집 에서 헛간이 있는 까지 볼 수 있기를 바랍니다.
농장을 2차원 지도로 나타내면, 번째 울타리는 정수 좌표 를 중심으로 하는 짧은 선분이며 45도로 기울어져 있습니다(/ 모양이거나 \ 모양). 예를 들어 에 놓인 / 방향의 울타리는 에서 까지의 선분으로 나타낼 수 있습니다. 모든 울타리(그리고 헛간)는 서로 다른 위치에 있으며, 좌표는 모두 이상 이하의 정수입니다. 어떤 울타리도 이나 에는 놓여 있지 않습니다.
존은 집 에 앉아 정확히 오른쪽( 방향)을 바라봅니다. 그의 시선은 일부 반사 울타리에 부딪혀 반사되며, 이렇게 해서 헛간 가 보이기를 바랍니다. 그런데 존은 울타리 하나의 방향을 잘못 설치했다고 생각합니다(예: /로 놓아야 할 것을 \로 놓음). 방향을 반대로(/와 \ 사이에서) 바꾸었을 때 헛간 가 보이게 되는, 목록에서 가장 앞선 울타리의 번호를 출력하세요.
울타리를 하나도 바꾸지 않아도 이미 가 보인다면 을 출력합니다. 울타리 하나의 방향을 바꾸어도 여전히 를 볼 수 없다면 을 출력합니다.
입력
- 첫째 줄: 공백으로 구분된 세 정수 , , .
- 둘째 줄부터 번째 줄까지: 번째 울타리를 나타내는 줄로,
x_i y_i /또는x_i y_i \형식입니다. 여기서 는 울타리 중심의 위치이고,/또는\는 울타리의 방향을 뜻합니다.
출력
- 첫째 줄: 방향을 바꾸면 존이 를 볼 수 있게 되는 가장 앞선 울타리의 번호. 아무것도 바꾸지 않아도 이미 가 보이면 을, 울타리 하나를 바꾸어도 를 볼 수 없으면 을 출력합니다.
힌트
입력 설명
농장 지도는 다음과 같습니다(H는 존의 집, B는 헛간).
3 .\.....
2 //.\..B
1 .......
0 H../...
0123456
출력 설명
에 있는 울타리의 방향을 바꾸면 존은 헛간을 볼 수 있습니다. 지도로 나타내면 다음과 같습니다.
3 .\.....
2 //./--B
1 ...|...
0 H--/...
0123456