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

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

점프 안무

시간 제한3초메모리 제한512 MB

요약
타워 위치가 바뀌고 개구리가 추가·삭제되는 동안 모든 개구리가 타워에 모이는 최소 점프 횟수를 각 시점마다 구한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 그리디
정답자
아직 제출이 없습니다

문제

개구리 무리가 한 줄로 서서 춤을 춘다. 개구리는 각자 정수 좌표 위에 서 있고, 춤은 점프의 연속이다. 한 개구리가 하는 jj번째 점프의 길이는 정확히 jj이고, 방향은 왼쪽과 오른쪽 중에서 자유롭게 고를 수 있다. 즉 첫 점프의 길이는 1, 두 번째는 2, 세 번째는 3이다. 점프가 지나가거나 도착하는 좌표에는 제한이 없어서 음수 좌표로 가도 되고, 여러 개구리가 같은 좌표에 서 있어도 된다.

춤은 모든 개구리가 탑 위치 tt에 모여 탑을 쌓으면서 끝난다. 개구리는 각자 따로 점프하고, 처음부터 tt에 서 있는 개구리는 한 번도 점프하지 않아도 된다. 안무의 비용은 모든 개구리가 한 점프 횟수의 합이고, 이 합을 최소로 만들어야 한다.

왕은 매일 리허설에 와서 변경을 하나씩 한다. 개구리를 한 마리 추가하거나, 한 마리 빼거나, 탑의 위치를 옮긴다. 변경을 하나 적용할 때마다 그 시점의 최소 점프 횟수 합을 구하라.

입력

첫 줄에 개구리의 수 nn과 탑의 처음 위치 tt가 주어진다 (0≤n≤50000 \le n \le 5000, 0≤t≤1060 \le t \le 10^6).

둘째 줄에 개구리 nn마리의 시작 위치 p1,…,pnp_1, \dots, p_n이 주어진다 (0≤pi≤1060 \le p_i \le 10^6). n=0n = 0이면 이 줄은 비어 있다.

셋째 줄에 변경의 수 CC가 주어진다 (0≤C≤1060 \le C \le 10^6).

이어지는 CC개의 줄에 변경이 한 줄에 하나씩 주어지고, 형식은 다음 셋 중 하나다 (0≤a≤1060 \le a \le 10^6).

  • + a: 위치 aa에 개구리를 한 마리 추가한다.
  • - a: 위치 aa에서 시작한 개구리를 한 마리 뺀다. 이 변경이 주어질 때 위치 aa에서 시작한 개구리가 적어도 한 마리 있다.
  • t a: 탑의 위치를 aa로 옮긴다.

개구리를 추가하거나 빼는 변경은 모두 합쳐 5000번을 넘지 않는다.

출력

변경 CC개를 순서대로 적용하면서, 각 변경을 적용한 직후의 최소 점프 횟수 합을 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    1 1
    0
    7
    t 0
    t 1
    t 2
    t 3
    t 4
    t 5
    t 6
    
    예상 출력
    0
    1
    3
    2
    3
    5
    3
    
  2. 예제 2

    입력
    3 0
    2 6 6
    10
    t 1
    t 2
    t 3
    t 4
    t 5
    t 6
    t 7
    t 8
    t 9
    t 10
    
    예상 출력
    11
    6
    5
    9
    4
    3
    7
    9
    9
    10
    
  3. 예제 3

    입력
    0 0
    
    7
    t 3
    + 4
    t 5
    + 6
    t 2
    - 4
    t 1
    
    예상 출력
    0
    1
    1
    2
    6
    3
    5