#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include using namespace std; typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b AC[MAX],WA[MAX]; const int D=500; vector mae[MAX]; int main(){ std::ifstream in("text.txt"); std::cin.rdbuf(in.rdbuf()); cin.tie(0); ios::sync_with_stdio(false); int N,M,Q;cin>>N>>M>>Q; vector A(N); for(int i=0;i>x;x--; string S;cin>>S; if(S=="AC") A[i]=x; else A[i]=~x; mae[x].push_back(i); } vector ato(N); for(int i=M-1;i>=0;i--){ reverse(all(mae[i])); bool deta=false; int cn=0; for(int x:mae[i]){ if(A[x]>=0){ if(deta){ ato[x]=cn; }else{ deta=true; } cn=0; }else{ cn++; } } } int l=-1,r=-1; vector S(Q); vector> ans(Q); for(int i=0;i>S[i].l>>S[i].r; S[i].l--; S[i].r--; S[i].id=i; } vector usel; for(int i=0;i ty(N); for(int i=0;ib.r; else return a.rr){ r++; if(A[r]>=0){ int x=A[r]; if(si(AC[x])==0){ wa+=si(WA[x]); ac++; } AC[x].push_back(r); }else{ int x=~A[r]; WA[x].push_back(r); } } while(S[i].l=0){ int x=A[l]; if(si(AC[x])>=1){ int ne=AC[x][0]; //wa-=lower_bound(all(WA[x]),ne)-WA[x].begin(); wa-=ato[l]; }else{ ac++; } AC[x].push_front(l); }else{ int x=~A[l]; if(si(AC[x])>=1){ wa++; } WA[x].push_front(l); } } while(S[i].r=0){ int x=A[r]; if(si(AC[x])==1){ wa-=si(WA[x]); ac--; } AC[x].pop_back(); }else{ int x=~A[r]; WA[x].pop_back(); } r--; } while(S[i].l>l){ if(l>=0){ if(A[l]>=0){ int x=A[l]; if(si(AC[x])==1){ ac--; }else{ int ne=AC[x][1]; //wa+=lower_bound(all(WA[x]),ne)-WA[x].begin(); wa+=ato[l]; } AC[x].pop_front(); }else{ int x=~A[l]; if(si(AC[x])>=1){ wa--; } WA[x].pop_front(); } } l++; } ans[S[i].id]=mp(ac,wa); //break; } for(int i=0;i