자습실과 쿼리

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

요약
학생들이 1차원 복도에서 벽을 부수며 순서대로 탈출하는데, 각자 망치질 횟수와 이동 거리를 최소로 하고 왼쪽 출구를 우선한다.
난이도

어려움10점 중 8점

유형
유니온 파인드, 그리디, 이분 탐색, 정렬
정답자
아직 제출이 없습니다

문제

자습실에서 공부를 하던 QQ명의 학생들은 공부가 너무나도 지루한 나머지 탈출을 결심한다.

학생들이 공부하고 있는 자습실은 가장 왼쪽부터 순서대로 1,2,⋯ ,N1, 2, \cdots, N번 구역으로 구성된 11차원 구조이고, 11번 구역이나 NN번 구역에 도달하면 자습실에서 탈출할 수 있다. 자습실 곳곳에는 MM개의 벽이 있는데, ii번째 벽은 D_iD\_i의 내구도를 가지며 W_iW\_i 구역에 있다.

학생들은 각자 본인이 공부하던 구역에서 출발해 왼쪽 또는 오른쪽으로 한 칸씩 이동할 수 있으며, 만약 이동하려는 구역에 내구도가 11 이상 남아있는 벽이 있다면 그 구역으로 이동할 수 없다. 학생들은 인접한 구역에 있는 벽을 망치로 내려칠 수 있다. 망치로 벽을 내려치면 벽의 내구도가 11만큼 감소하며, 내구도가 00이 된 벽은 영원히 파괴되어 벽이 있던 구역으로 이동할 수 있게 된다. 하나의 벽을 동시에 여러 사람이 부수면 파편으로 인해 위험할 수 있으므로 학생들은 한 명씩 차례대로 탈출하기로 했다. i+1i+1번 친구는 ii번 친구가 탈출을 완료한 이후에만 행동할 수 있다. (1≤i<Q)(1 \leq i < Q)

각 학생은 다음 조건에 따라 탈출한다.

  • 최소한의 망치질로 탈출하는 방법으로 탈출한다.
  • 만약 최소한의 망치질로 탈출하는 방법이 여러 가지일 경우 이동 거리가 최소인 방법으로 탈출한다.
  • 만약 최소한의 망치질과 최소한의 이동 거리로 탈출하는 방법이 여러 가지인 경우 11번 구역으로 탈출한다.

ii번 학생은 P_iP\_i번 구역에서 공부하고 있다. 11번 학생부터 QQ번 학생까지 차례대로 탈출할 때 각 학생이 몇 번의 망치질을 했는지 출력하시오.

입력

첫 번째 줄에 세 정수 NN, MM, QQ가 공백으로 구분하여 주어진다. (3≤N≤105;0≤M<N;1≤Q≤105)(3 \le N \le 10^5; 0 \le M < N; 1 \le Q \le 10^5)

다음 MM개의 줄 중 ii번째 줄에는 두 정수 W_iW\_i와 D_iD\_i가 공백으로 구분하여 주어진다. (1≤W_1,W_2,⋯ ,W_M≤N;1≤D_1,D_2,⋯ ,D_M≤105)(1 \le W\_1, W\_2, \cdots, W\_M \le N; 1 \le D\_1, D\_2, \cdots, D\_M \le 10^5)

다음 QQ개의 줄 중 ii번째 줄에는 정수 P_iP\_i가 주어진다. (1≤P_1,P_2,⋯ ,P_Q≤N)(1 \le P\_1, P\_2, \cdots, P\_Q \le N)

모든 입력에서 벽은 서로 겹치지 않는다. 학생들이 공부하고 있는 구역에 벽이 있는 입력은 주어지지 않는다.

출력

첫 번째 줄부터 QQ개의 줄에 걸쳐 11번 학생부터 QQ번 학생까지 탈출하기 위해 망치질한 횟수를 한 줄에 하나씩 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    10 3 2
    2 120
    7 200
    9 300
    5
    8
    
    예상 출력
    120
    200