This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |