화면 보호기
시간 제한1초메모리 제한128 MB
서로 만나지 않는 수평 및 수직 벽 세그먼트들 사이를 대각선으로 이동하며 반사되는 공의 t초 후 위치를 구한다.
문제
바이트자르(Bajtazar)는 3차원 그래픽을 만드는 회사에 입사하면서 초고해상도 모니터가 달린 새 컴퓨터를 받았다. 그는 새 장비를 시험해 보려고 화면 보호기를 만들기로 했다. 화면 위를 돌아다니는 공이 벽에 부딪혀 튕기는, 고전적인 방식이다.
모든 벽은 수평 또는 수직 선분이고, 어떤 두 벽도 공통점을 가지지 않는다. 공은 항상 벽면에 대해 45도 각도로 움직이며, 반사 법칙에 따라 튕긴다. 즉 벽의 한가운데에 부딪히든 끝점에 부딪히든, 언제나 벽면에 대해 45도로 반사된다.
주어진 벽 배치와 시각 에 대해, 화면 보호기가 작동한 지 바이트초가 지난 순간 공의 위치를 구하여라.
입력
첫째 줄에 세 정수 (), (), ()가 주어진다. 각각 벽의 개수, 공의 처음 진행 방향, 그리고 위치를 구할 시각(바이트초)이다. 방향 의 의미는 다음과 같다.
- : 북동쪽 (와 가 모두 증가)
- : 남동쪽 (는 증가, 는 감소)
- : 남서쪽 (와 가 모두 감소)
- : 북서쪽 (는 감소, 는 증가)
이어지는 개의 줄에는 각 벽의 두 끝점 좌표 , , , ()가 주어진다. 모든 벽의 길이 합 과 벽의 개수 는 을 만족한다. 공은 첫 번째 벽의 중점에서 방향 로 출발하며, 한 바이트초마다 축과 축으로 각각 한 칸씩 이동한다. 공이 출발하는 첫 번째 벽의 길이는 항상 짝수이다.
출력
공이 시각 에 있는 위치를 한 줄에 출력한다. 즉 공의 좌표와 좌표를 공백 하나로 구분한 두 정수로 출력한다.