Submission #745103

#TimeUsernameProblemLanguageResultExecution timeMemory
745103ItamarStreet Lamps (APIO19_street_lamps)C++14
20 / 100
457 ms524288 KiB
#include <iostream> using namespace std; #include<bitset> #include<vector> #define vi vector<int> int main() { int n, q; cin >> n >> q; const int siz = 3e5; bitset<siz> b; string s; cin >> s; vector<vi> ans(n,vi(n)); for (int i = 0; i < n; i++)b[i] = (s[i] == '1'); for (int i = 1; i <= q; i++) { string st; cin >> st; if (st == "toggle") { int in; cin >> in; in--; if (b[in]) { int x = in, y = in; while (x>=0&&b[x])x--; while (y<=n-1&&b[y])y++; x++, y--; for (int j = x; j <= y; j++) { for (int k = x; k <= y; k++) { ans[j][k] += i; } } for (int j = x; j <= in-1; j++) { for (int k = x; k <= in-1; k++) { ans[j][k] -= i; } } for (int j = in+1; j <=y; j++) { for (int k = in+1; k <=y; k++) { ans[j][k] -= i; } } b[in] = 0; } else { b[in] = 1; int x = in, y = in; while (x>=0&&b[x])x--; while (y<=n-1&&b[y])y++; x++, y--; for (int j = x; j <= y; j++) { for (int k = x; k <= y; k++) { ans[j][k] -= i; } } for (int j = x; j <= in - 1; j++) { for (int k = x; k <= in - 1; k++) { ans[j][k] += i; } } for (int j = in + 1; j <= y; j++) { for (int k = in + 1; k <= y; k++) { ans[j][k] += i; } } } } else { int x, y; cin >> x >> y; x--, y -= 2; bool f = 1; for (int i = x; i <= y; i++)if (b[i] == 0)f = 0; cout << ans[x][y] + i *f << "\n"; } } } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu
#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...