Submission #902448

#TimeUsernameProblemLanguageResultExecution timeMemory
902448Trisanu_DasStreet Lamps (APIO19_street_lamps)C++17
40 / 100
697 ms10636 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
	int n,q; cin>>n>>q;
	string st; cin>>st;
	if (n<=100&&q<=100){
		vector <string> v;
		v.push_back(st);
		for (int z=1; z<=q; z++){
			string s;
			cin>>s;
			if (s=="toggle"){
				int u;
				cin>>u;
				u--;
				if (st[u]=='0') st[u]='1';
				else st[u]='0';
			} else {
				int t,u;
				cin>>t>>u;
				t--;
				u--;
				int cnt=0;
				for (auto&i:v){
					bool ok=1;
					for (int j=t; j<u; j++){
						if (i[j]!='1'){
							ok=0;
							break;
						}
					}
					if (ok) cnt++;
				}
				cout<<cnt<<endl;
			}
			v.push_back(st);
		}
	} else {
		int cnt[n]={},on[n]={};
		for (int i=0; i<n; i++) if (st[i]=='1') on[i]=0;
		for (int z=1; z<=q; z++){
			string s; cin>>s;
			if (s=="toggle"){
				int u;
				cin>>u;
				u--;
				if (st[u]=='0'){
					st[u]='1';
					on[u]=z;
				} else {
					st[u]='0';
					cnt[u]+=z-on[u];
				}
			} else {
				int u,dummy;
				cin>>u>>dummy;
				u--;
				if (st[u]=='0') cout<<cnt[u]<<endl;
				else cout<<cnt[u]+z-on[u]<<endl;
			}
		}	
	}
}
#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...