아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

화면 보호기

시간 제한1초메모리 제한128 MB

요약
서로 만나지 않는 수평 및 수직 벽 세그먼트들 사이를 대각선으로 이동하며 반사되는 공의 t초 후 위치를 구한다.
난이도

어려움10점 중 8점

유형
기하, 시뮬레이션, 수학, 정렬
정답자
아직 제출이 없습니다

문제

바이트자르(Bajtazar)는 3차원 그래픽을 만드는 회사에 입사하면서 초고해상도 모니터가 달린 새 컴퓨터를 받았다. 그는 새 장비를 시험해 보려고 화면 보호기를 만들기로 했다. 화면 위를 돌아다니는 공이 벽에 부딪혀 튕기는, 고전적인 방식이다.

모든 벽은 수평 또는 수직 선분이고, 어떤 두 벽도 공통점을 가지지 않는다. 공은 항상 벽면에 대해 45도 각도로 움직이며, 반사 법칙에 따라 튕긴다. 즉 벽의 한가운데에 부딪히든 끝점에 부딪히든, 언제나 벽면에 대해 45도로 반사된다.

주어진 벽 배치와 시각 tt에 대해, 화면 보호기가 작동한 지 tt 바이트초가 지난 순간 공의 위치를 구하여라.

입력

첫째 줄에 세 정수 ss (1≤s≤500001 \le s \le 50000), kk (0≤k≤30 \le k \le 3), tt (0≤t≤10180 \le t \le 10^{18})가 주어진다. 각각 벽의 개수, 공의 처음 진행 방향, 그리고 위치를 구할 시각(바이트초)이다. 방향 kk의 의미는 다음과 같다.

  • 00: 북동쪽 (xx와 yy가 모두 증가)
  • 11: 남동쪽 (xx는 증가, yy는 감소)
  • 22: 남서쪽 (xx와 yy가 모두 감소)
  • 33: 북서쪽 (xx는 감소, yy는 증가)

이어지는 ss개의 줄에는 각 벽의 두 끝점 좌표 pxp_x, pyp_y, kxk_x, kyk_y (0≤px,py,kx,ky≤1090 \le p_x, p_y, k_x, k_y \le 10^9)가 주어진다. 모든 벽의 길이 합 ll과 벽의 개수 ss는 l+s≤100000l + s \le 100000을 만족한다. 공은 첫 번째 벽의 중점에서 방향 kk로 출발하며, 한 바이트초마다 xx축과 yy축으로 각각 한 칸씩 이동한다. 공이 출발하는 첫 번째 벽의 길이는 항상 짝수이다.

출력

공이 시각 tt에 있는 위치를 한 줄에 출력한다. 즉 공의 xx좌표와 yy좌표를 공백 하나로 구분한 두 정수로 출력한다.

예제1

  1. 예제 1

    입력
    3 0 16
    2 2 12 2
    2 14 14 14
    12 12 12 3
    
    예상 출력
    1 10