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