코끼리

시간 제한12초메모리 제한256 MB

요약
코끼리 한 마리의 위치를 바꾸는 이동이 M번 주어질 때마다, 현재 모든 위치를 덮는 길이 L 구간의 최소 개수를 구한다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 동적 계획법, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

무대 위에서 NN마리의 코끼리가 한 줄로 서서 춤을 추는 코끼리 쇼를 촬영하려고 한다. 코끼리들은 00번부터 N−1N-1번까지 번호가 매겨져 있다.

쇼는 여러 번의 동작으로 이루어진다. 각 동작에서는 정확히 한 마리의 코끼리만 무대 위의 다른 위치로 이동한다(제자리에 그대로 있을 수도 있다). 여러 마리의 코끼리가 같은 위치에 겹쳐 서 있을 수도 있으며, 이때는 단순히 서로의 뒤에 서 있는 것으로 본다.

각 동작이 끝난 직후, 그 순간 무대 위의 모든 코끼리를 사진에 담으려고 한다. 하나의 카메라는 길이가 LL인 구간(양 끝 포함) 안에 있는 코끼리들만 한 번에 찍을 수 있다. 즉 어떤 카메라가 위치 ss에서 시작하면 구간 [s, s+L][s,\ s+L] 안의 모든 코끼리를 찍는다. 코끼리들이 넓게 흩어져 있으면 한 순간을 모두 담기 위해 카메라가 여러 대 필요할 수 있다.

각 동작이 끝난 뒤, 그 순간의 모든 코끼리를 찍는 데 필요한 카메라의 최소 개수를 구하라. 이 값은 동작마다 늘어날 수도, 줄어들 수도, 그대로일 수도 있다.

예를 들어 L=10L=10이고 코끼리들이 위치 10,15,17,2010, 15, 17, 20에 있다면, 아래 그림처럼 카메라 한 대로 모든 코끼리를 담을 수 있다. (삼각형은 코끼리를, 사다리꼴은 카메라를 나타낸다.)

이어지는 동작에서 위치 1515에 있던 코끼리가 3232로 이동하면, 이 순간을 담기 위해서는 카메라가 적어도 두 대 필요하다.

그다음 동작에서 위치 1010에 있던 코끼리가 77로 이동하면, 모든 코끼리를 담는 데 카메라 세 대가 필요하다.

카메라 구간의 길이 LL은 정수이며 0≤L≤1090 \le L \le 10^9이다. 처음에 주어지는 코끼리 ii의 위치 X[i]X[i]는 정수이고 0≤X[0]≤X[1]≤⋯≤X[N−1]≤1090 \le X[0] \le X[1] \le \cdots \le X[N-1] \le 10^9로 오름차순 정렬되어 있다. 동작이 진행되면 위치들의 정렬 순서는 바뀔 수 있다. 각 동작은 코끼리 번호 ii와 새 위치 yy(0≤y≤1090 \le y \le 10^9)로 주어지며, 코끼리 ii의 위치를 yy로 바꾼다.

입력

첫째 줄에 코끼리의 수 NN, 카메라 구간의 길이 LL, 동작의 수 MM이 공백으로 구분되어 주어진다.

이어지는 NN개의 줄에는 코끼리들의 초기 위치가 한 줄에 하나씩 주어진다. ii번째 값은 X[i−1]X[i-1]이며, 오름차순으로 정렬되어 있다.

그다음 MM개의 줄에는 각 동작이 한 줄에 하나씩 주어진다. 각 줄에는 두 정수 ii와 yy가 공백으로 구분되어 있으며, 코끼리 ii가 위치 yy로 이동함을 뜻한다.

출력

각 동작마다, 그 동작이 끝난 뒤 모든 코끼리를 찍는 데 필요한 카메라의 최소 개수를 한 줄에 하나씩, 입력에 주어진 동작 순서대로 출력한다.

예제2

  1. 예제 1

    입력
    4 10 5
    10
    15
    17
    20
    2 16
    1 25
    3 35
    0 38
    2 0
    
    예상 출력
    1
    2
    2
    2
    3
    
  2. 예제 2

    입력
    3 0 4
    5
    5
    8
    0 8
    1 8
    2 10
    0 10
    
    예상 출력
    2
    1
    2
    2