Submission #139601

#TimeUsernameProblemLanguageResultExecution timeMemory
139601FedericoSStreet Lamps (APIO19_street_lamps)C++14
0 / 100
971 ms21416 KiB
#include <iostream> #include <vector> using namespace std; typedef pair<int,int> pii; bool sub1=false; bool sub2=true; int N,Q; char c; string s; int A[300005],B[300005]; bool P[300005]; bool T[105][105]; vector<pii> V[300005]; int main(){ cin>>N>>Q; for(int i=0;i<N;i++){ cin>>c; P[i]=(c=='1'); T[0][i]=P[i]; } for(int i=0;i<Q;i++){ cin>>s; if(s=="query"){ cin>>A[i]>>B[i]; A[i]--; B[i]--; if(B[i]-A[i]!=1) sub2=false; } else{ cin>>A[i]; A[i]--; B[i]=-1; } } sub2=true; if(sub1 and N<=100 and Q<=100){ for(int i=0;i<Q;i++){ if(B[i]==-1) T[i+1][A[i]]=true; else{ int ans=0; for(int k=0;k<i+1;k++){ bool flag=true; for(int j=A[i];j<B[i];j++) flag&=T[k][j]; ans+=flag; } cout<<ans<<"\n"; } for(int j=0;j<N;j++) T[i+1][j]^=T[i][j]; } } else if(sub2){ for(int i=0;i<N;i++) V[i].push_back({0,0}); for(int i=0;i<Q;i++){ int k=A[i]; if(B[i]==-1){ if(P[k]){ pii p={i+1,V[k].back().second+i+1-V[k].back().first}; V[k].push_back(p); } else{ pii p={i+1,V[k].back().second}; V[k].push_back(p); } P[k]=!P[k]; } else{ if(P[k]) cout<<V[k].back().second+i+1-V[k].back().first<<endl; else cout<<V[k].back().second<<endl; } } } else{ } }
#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...