Submission #1044646

#TimeUsernameProblemLanguageResultExecution timeMemory
1044646Kel_MahmutStreet Lamps (APIO19_street_lamps)C++14
40 / 100
168 ms19852 KiB
#include <bits/stdc++.h>
#define pb push_back
#define endl ("\n")
#define all(aa) aa.begin(), aa.end()
typedef long long ll;
using namespace std;

int main(){
	int n, q;
	cin >> n >> q;
	if(n <= 100 && q <= 100){
		vector<int> v(n);
		string s;
		cin >> s;
		for(int i = 0; i < n; i++) v[i] = (s[i] == '1');

		vector<vector<int>> ans(n, vector<int>(n));
		for(int i = 0; i < q; i++){
			for(int j = 0; j < n; j++){
				for(int k = j; k < n; k++){
					int ok = 1;
					for(int a = j; a <= k; a++)
						ok &= v[a];
					ans[j][k] += ok;
				}
			}
			string t;
			cin >> t;
			if(t == "toggle"){
				int a; cin >> a; a--;
				v[a] ^= 1;
			}
			else{
				int l, r; cin >> l >> r; l--, r-= 2;
				cout << ans[l][r] << endl;
			}
		}
	}
	else{
		vector<int> v(n);
		string s;
		cin >> s;
		for(int i = 0; i < n; i++) v[i] = (s[i] == '1');

		vector<vector<pair<int, int>>> Q(n);
		for(int i = 1; i <= q; i++){
			string t;
			cin >> t;
			if(t == "toggle"){
				int a; cin >> a; a--;
				Q[a].pb({i, 0});
			}
			else{
				int l, r; cin >> l >> r;
				l--, r -= 2;
				Q[l].pb({i, 1});
			}
		}
		vector<int> ans(q + 1, -1);
		for(int i = 0; i < n; i++){
			ll one = v[i];
			ll cev = 0;
			ll time = 0;
			for(auto [a, t] : Q[i]){
				cev += one * (a - time);
				if(t == 0){
					one ^=1;
				}
				else{
					ans[a] = cev;
				}
				time = a;
			}
		}

		for(int i = 0; i <= q; i++){
			if(ans[i] != -1){
				cout << ans[i] << endl;
			}
		}
	}
	

}

Compilation message (stderr)

street_lamps.cpp: In function 'int main()':
street_lamps.cpp:64:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   64 |    for(auto [a, t] : Q[i]){
      |             ^
#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...