점프 안무
시간 제한3초메모리 제한512 MB
타워 위치가 바뀌고 개구리가 추가·삭제되는 동안 모든 개구리가 타워에 모이는 최소 점프 횟수를 각 시점마다 구한다.
문제
개구리 무리가 한 줄로 서서 춤을 춘다. 개구리는 각자 정수 좌표 위에 서 있고, 춤은 점프의 연속이다. 한 개구리가 하는 번째 점프의 길이는 정확히 이고, 방향은 왼쪽과 오른쪽 중에서 자유롭게 고를 수 있다. 즉 첫 점프의 길이는 1, 두 번째는 2, 세 번째는 3이다. 점프가 지나가거나 도착하는 좌표에는 제한이 없어서 음수 좌표로 가도 되고, 여러 개구리가 같은 좌표에 서 있어도 된다.
춤은 모든 개구리가 탑 위치 에 모여 탑을 쌓으면서 끝난다. 개구리는 각자 따로 점프하고, 처음부터 에 서 있는 개구리는 한 번도 점프하지 않아도 된다. 안무의 비용은 모든 개구리가 한 점프 횟수의 합이고, 이 합을 최소로 만들어야 한다.
왕은 매일 리허설에 와서 변경을 하나씩 한다. 개구리를 한 마리 추가하거나, 한 마리 빼거나, 탑의 위치를 옮긴다. 변경을 하나 적용할 때마다 그 시점의 최소 점프 횟수 합을 구하라.
입력
첫 줄에 개구리의 수 과 탑의 처음 위치 가 주어진다 (, ).
둘째 줄에 개구리 마리의 시작 위치 이 주어진다 (). 이면 이 줄은 비어 있다.
셋째 줄에 변경의 수 가 주어진다 ().
이어지는 개의 줄에 변경이 한 줄에 하나씩 주어지고, 형식은 다음 셋 중 하나다 ().
+ a: 위치 에 개구리를 한 마리 추가한다.- a: 위치 에서 시작한 개구리를 한 마리 뺀다. 이 변경이 주어질 때 위치 에서 시작한 개구리가 적어도 한 마리 있다.t a: 탑의 위치를 로 옮긴다.
개구리를 추가하거나 빼는 변경은 모두 합쳐 5000번을 넘지 않는다.
출력
변경 개를 순서대로 적용하면서, 각 변경을 적용한 직후의 최소 점프 횟수 합을 한 줄에 하나씩 출력한다.