显示原始代码
#include <stdio.h>
int main() {
int q;
scanf("%d", &q);
int a[10000000000];
long max = 0;
long min = 1000000000;
for (int i = 1; i <= q; i++) {
int m;
scanf("%d", &m);
if (m == 1) {
long x;
scanf("%ld", &x);
a[x]++;
if (min > x) {
min = x;
}
if (max < x) {
max = x;
}
} else if (m == 2) {
long x;
int c;
scanf("%ld%d", &x, &c);
if (a[x] > c) {
a[x] -= c;
} else {
a[x] = 0;
}
if (min == x && a[x] == 0) {
for (long j = x;; j++) {
if (a[j] != 0) {
min = j;
break;
}
}
}
if (max == x && a[x] == 0) {
for (long k = x;; k--) {
if (a[k] != 0) {
max = k;
break;
}
}
}
} else {
printf("%ld\n", max - min);
}
}
return 0;
}