这份暴力代码也能水过,而且跑得飞快。 这份代码最坏时间复杂度能达到O(q/2*w)。
#include <bits/stdc++.h>
using namespace std;
int n,q,x,op,ma,mi=1e9;
int b[1000005];
inline int read(){
int x=0,f=1;
char c=getchar();
while(c>'9'||c<'0'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-48;
c=getchar();
}
return x*f;
}
inline void print(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) print(x/10);
putchar(x%10+48);
}
int main() {
n=read(),q=read();
for(int i=1;i<=n;++i){
x=read();
b[x]++;
ma=max(ma,x);
mi=min(mi,x);
}
while(q--){
op=read(),x=read();
if(op==1){
if(b[x]){
b[x]--;
if(x==mi){
for(int i=mi;i<=ma;++i){
if(b[i]){
mi=i;
break;
}
}
}else if(x==ma){
for(int i=ma;i>=mi;--i){
if(b[i]){
ma=i;
break;
}
}
}
print((ma-mi)*2);
putchar('\n');
}else{
print(-1);
putchar('\n');
}
}else{
b[x]++;
mi=min(mi,x);
ma=max(ma,x);
print((ma-mi)*2);
putchar('\n');
}
}
return 0;
}