/*set加速维护*/ #include<iostream> #include<cstdio> #include<cstring> #include<set> #define maxn 100010 using namespace std; set<int>s; set<int>::iterator p; int n,m,a[maxn],top; char c[10]; int init() { int x=0,f=1;char s=getchar(); while(s<‘0‘||s>‘9‘){if(s==‘-‘)f=-1;s=getchar();} while(s>=‘0‘&&s<=‘9‘){x=x*10+s-‘0‘;s=getchar();} return x*f; } int main() { n=init();m=init();int x; s.insert(0);s.insert(n+1); while(m--) { scanf("%s",c); if(c[0]==‘D‘) { x=init();a[++top]=x; s.insert(x); } else if(c[0]==‘R‘) { if(top==0)continue; p=s.find(a[top]); top--;s.erase(p); } else if(c[0]==‘Q‘) { int r;x=init(); p=s.lower_bound(x); if(*p==x) { printf("0\n"); continue; } r=*p-*(--p); printf("%d\n",r-1); } } return 0; }
时间: 2024-10-26 23:12:46