만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

청소

시간 제한11초메모리 제한2048 MB

요약
직각이등변삼각형 방에서 빗자루로 먼지를 쓸고 새 먼지를 추가할 때, 지정한 먼지의 현재 좌표를 구합니다.
난이도

어려움10점 중 8점

유형
시뮬레이션, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

비타로의 방은 다리의 길이가 NN인 직각이등변삼각형이다. 방 안의 점은 좌표 (x,y)(x, y)로 나타내며, 0≤x≤N0 \le x \le N, 0≤y≤N0 \le y \le N, x+y≤Nx + y \le N을 만족한다. 직각의 꼭짓점은 원점이고, 두 다리는 x축과 y축이다.

어느 날 비타로는 방에 먼지가 가득한 것을 발견했다. 처음에 방에는 MM개의 먼지가 있다. ii번째 먼지(1≤i≤M1 \le i \le M)는 점 (Xi,Yi)(X_i, Y_i)에 있다. 같은 점에 먼지가 여러 개 있을 수 있다.

비타로는 빗자루로 방을 쓴다. 빗자루는 방 안의 선분이며, 선분의 길이를 빗자루의 너비라고 부른다. 비타로는 다음 두 절차로만 빗자루를 사용한다.

  1. 절차 H: 빗자루의 한쪽 끝을 원점에 두고 y축과 평행하게 놓는다. 한쪽 끝을 x축 위에 둔 채 y축과 평행을 유지하면서, 빗자루를 x축의 양의 방향으로 최대한 민다. 너비가 ll이면, x<N−lx < N - l이고 y≤ly \le l인 점 (x,y)(x, y)의 먼지는 (N−l,y)(N - l, y)로 옮겨진다. (N−l,y)(N - l, y)에는 다른 먼지가 있을 수 있다.
  2. 절차 V: 빗자루의 한쪽 끝을 원점에 두고 x축과 평행하게 놓는다. 한쪽 끝을 y축 위에 둔 채 x축과 평행을 유지하면서, 빗자루를 y축의 양의 방향으로 최대한 민다. 너비가 ll이면, x≤lx \le l이고 y<N−ly < N - l인 점 (x,y)(x, y)의 먼지는 (x,N−l)(x, N - l)로 옮겨진다. (x,N−l)(x, N - l)에는 다른 먼지가 있을 수 있다.

방에서는 Q개의 이벤트가 순서대로 일어난다. 이벤트 jj(1≤j≤Q1 \le j \le Q)는 다음 중 하나이다.

  • 비타로가 먼지 PjP_j의 좌표를 계산한다.
  • 비타로가 너비 LjL_j의 빗자루로 절차 H를 수행한다.
  • 비타로가 너비 LjL_j의 빗자루로 절차 V를 수행한다.
  • 점 (Aj,Bj)(A_j, B_j)에 새 먼지가 추가된다. 이벤트 전에 먼지가 cc개 있었다면, 새 먼지는 방의 (c+1)(c + 1)번째 먼지가 된다.

다리의 길이, 먼지의 좌표, 이벤트가 주어졌을 때 먼지의 좌표를 구하는 프로그램을 작성하시오.

입력

N M Q
X_1 Y_1
.
.
.
X_M Y_M
(질의 1)
.
.
.
(질의 Q)

각 질의 줄에는 두 개 또는 세 개의 정수가 있다. 첫 번째 정수를 TjT_j라고 한다.

  • Tj=1T_j = 1이면 줄에 TjT_j와 PjP_j가 있다. 이벤트 jj에서 비타로는 먼지 PjP_j의 좌표를 계산한다.
  • Tj=2T_j = 2이면 줄에 TjT_j와 LjL_j가 있다. 이벤트 jj에서 비타로는 너비 LjL_j의 빗자루로 절차 H를 수행한다.
  • Tj=3T_j = 3이면 줄에 TjT_j와 LjL_j가 있다. 이벤트 jj에서 비타로는 너비 LjL_j의 빗자루로 절차 V를 수행한다.
  • Tj=4T_j = 4이면 줄에 TjT_j, AjA_j, BjB_j가 있다. 이벤트 jj에서 점 (Aj,Bj)(A_j, B_j)에 새 먼지가 추가된다.

출력

Tj=1T_j = 1인 각 이벤트마다 이벤트 시점의 먼지 PjP_j의 x좌표와 y좌표를 한 줄에 출력한다.

제한

  • 1≤N≤1,000,000,0001 \le N \le 1{,}000{,}000{,}000
  • 1≤M≤500,0001 \le M \le 500{,}000
  • 1≤Q≤1,000,0001 \le Q \le 1{,}000{,}000
  • 0≤Xi≤N0 \le X_i \le N, 0≤Yi≤N0 \le Y_i \le N, Xi+Yi≤NX_i + Y_i \le N (1≤i≤M1 \le i \le M)
  • 1≤Pj≤1 \le P_j \le (이벤트 jj가 일어날 때의 먼지 개수) (1≤j≤Q1 \le j \le Q)
  • 0≤Lj≤N−10 \le L_j \le N - 1 (1≤j≤Q1 \le j \le Q)
  • 0≤Aj≤N0 \le A_j \le N, 0≤Bj≤N0 \le B_j \le N, Aj+Bj≤NA_j + B_j \le N (1≤j≤Q1 \le j \le Q)
  • Tj=1T_j = 1인 이벤트가 적어도 하나 있다.
  • 시간 제한은 11000 ms, 메모리 제한은 2048 MB이다.

예제4

  1. 예제 1

    입력
    6 2 10
    1 1
    4 0
    4 2 3
    3 3
    1 1
    4 1 2
    2 3
    2 0
    1 4
    3 2
    1 3
    1 2
    
    예상 출력
    1 3
    3 2
    3 3
    6 0
    
  2. 예제 2

    입력
    9 4 8
    2 3
    3 1
    1 6
    4 3
    2 6
    1 3
    2 2
    1 4
    2 3
    1 2
    2 4
    1 1
    
    예상 출력
    3 6
    4 3
    7 1
    6 3
    
  3. 예제 3

    입력
    8 1 8
    1 5
    4 4 1
    2 6
    1 2
    2 3
    4 2 2
    2 5
    1 1
    1 3
    
    예상 출력
    4 1
    3 5
    3 2
    
  4. 예제 4

    입력
    7 4 9
    1 5
    2 2
    4 2
    5 0
    2 6
    2 3
    1 2
    3 6
    1 4
    3 1
    1 1
    2 2
    1 3
    
    예상 출력
    4 2
    5 1
    1 6
    5 2