一个超水单调队列,也可以用线段树做,这里就贴单调队列的代码。
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int maxn=2e5+5; 8 int n,mod,x; 9 int q[maxn],a[maxn],l,r,t,ct,cur;10 char c;11 12 int main(){13 ios::sync_with_stdio(false);14 cin>>n>>mod;15 for(int i=1;i<=n;++i){16 cin>>c>>x;17 if(c=='Q'){18 cur=l;19 while(cur<=r&&q[cur] a[q[r]])r--;27 q[++r]=ct;28 }29 }30 31 return 0;32 }