#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 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(AC[x]==0){ wa+=WA[x]; ac++; } AC[x]++; }else{ int x=~A[r]; WA[x]++; } } while(S[i].l=0){ int x=A[l]; if(AC[x]>=1){ wa-=ato[l]; }else{ ac++; } AC[x]++; }else{ int x=~A[l]; if(AC[x]>=1){ wa++; } WA[x]++; } } while(S[i].r=0){ int x=A[r]; if(AC[x]==1){ wa-=WA[x]; ac--; } AC[x]--; }else{ int x=~A[r]; WA[x]--; } r--; } while(S[i].l>l){ if(l>=0){ if(A[l]>=0){ int x=A[l]; if(AC[x]==1){ ac--; }else{ wa+=ato[l]; } AC[x]--; }else{ int x=~A[l]; if(AC[x]>=1){ wa--; } WA[x]--; } } l++; } ans[S[i].id]=mp(ac,wa); //break; } for(int i=0;i