Submission #729107

#TimeUsernameProblemLanguageResultExecution timeMemory
7291071075508020060209tcStreet Lamps (APIO19_street_lamps)C++14
20 / 100
5049 ms25352 KiB

#include<bits/stdc++.h>

using namespace std;
#define int long long
int n;int Q;

string tss;

int ar[300005];
string typ[300005];int qa[300005];int qb[300005];
int ps[300005];
int ans[300005];
signed main(){
cin>>n>>Q;
cin>>tss;tss="*"+tss;
for(int i=1;i<=n;i++){
    ar[i]=tss[i]-'0';
}

for(int i=1;i<=Q;i++){
    cin>>typ[i];
    if(typ[i][0]=='q'){
        cin>>qa[i]>>qb[i];
    }else{
        cin>>qa[i];
    }
}
for(int i=1;i<=n;i++){
    ps[i]=ps[i-1]+ar[i];
}
for(int i=1;i<=Q;i++){

    for(int j=i;j<=Q;j++){
        if(typ[j][0]=='q'){
            int len=qb[j]-1-qa[j]+1;
            if(ps[qb[j]-1]-ps[qa[j]-1]==len){
                ans[j]++;
            }
        }

    }
    if(typ[i][0]=='t'){
        ar[qa[i]]^=1;
        for(int j=1;j<=n;j++){
            ps[j]=ps[j-1]+ar[j];
        }
    }


}
for(int i=1;i<=Q;i++){
    if(typ[i][0]=='q'){
        cout<<ans[i]<<"\n";
    }
}

}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...