점프 안무

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

어려움8수학정수론그리디아직 제출이 없습니다시간 제한3초메모리 제한512 MB

문제

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

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

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

입력

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

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

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

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

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

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

출력

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