Submission #410674

#TimeUsernameProblemLanguageResultExecution timeMemory
410674dynam1cStreet Lamps (APIO19_street_lamps)C++17
20 / 100
204 ms15492 KiB
//#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include <bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" #define all(c) (c).begin(),(c).end() // when you ponder, divide and conquer signed main() { // freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); std::ios::sync_with_stdio(false); cin.tie(0); int n, q; cin >> n >> q; string s; cin >> s; vector<int> accs(n), last(n); vector<vector<int>> upds(n); for (int qq = 0; qq < q; qq++) { string t; cin >> t; if (t == "query") { int i, r; cin >> i >> r; i--; for (int t : upds[i]) { if (s[i] == '1') accs[i] += t-last[i]; last[i] = t; s[i] = s[i] == '1' ? '0' : '1'; } upds[i].clear(); cout << accs[i] + (s[i] == '1' ? qq+1-last[i] : 0) << endl; } if (t == "toggle") { int i; cin >> i; i--; upds[i].push_back(qq+1); } } } /* --- PSolving --- * Simplifying (getting rid of variables, conditions, code logic, etc.) * Reframing * Solving a subtask (subgoal, aux. problem, removing a condition or fixing a parameter, etc.) * Inducing * Divide and conquer * Working backwards * Visual intuition * !! Reductions don't have to be specializations, they can be generalizations */
#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...