Submission #1044945

#TimeUsernameProblemLanguageResultExecution timeMemory
1044945vjudge1Street Lamps (APIO19_street_lamps)C++17
20 / 100
5091 ms524288 KiB
// #pragma GCC optimize("O3,Ofast,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> using namespace std; #define int long long int #define MP make_pair #define pb push_back #define REP(i,n) for(int i = 0; (i) < (n); (i)++) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() void fastio() { ios_base::sync_with_stdio(false); cin.tie(NULL); } const double EPS = 0.00001; const int INF = 1e9+500; const int N = 3e5+5; const int ALPH = 26; const int LGN = 25; constexpr int MOD = 1e9+7; int n,m,q; inline void solve() { cin >> n >> q; string s; cin >> s; s = '$' + s; vector<vector<array<int, 2> > > upd(n + 2, vector<array<int, 2> >()); // (] vector<array<int, 3> > que; vector<int> tm(n + 2, 0); for(int z = 1; z <= q; z++) { string t; cin >> t; if(t == "toggle") { int i; cin >> i; if(s[i] == '0') { tm[i] = z; s[i] = '1'; } else { upd[i].pb({tm[i], z}); s[i] = '0'; } } else { int a, b; cin >> a >> b; que.pb({a, b, z}); } } for(int i = 1; i <= n; i++) { if(s[i] == '1') { upd[i].pb({tm[i], q}); } } // for(int i = 1; i <= n; i++) { // cout << "i:" << i << "\n\n"; // auto &x = upd[i]; // for(auto &c : x) { // cout << c[0] << " " << c[1] << "\n"; // } // } vector<vector<int> > grid(n + 3, vector<int>(q + 3, 0)); vector<int> ans(q + 1, -1); for(int i = 1; i <= n; i++) { for(auto c : upd[i]) { for(int j = c[0] + 1; j <= c[1]; j++) { grid[i][j] = 1; } } } for(auto c : que) { ans[c[2]] = 0; for(int t = 1; t <= c[2]; t++) { bool f = 1; for(int i = c[0]; i <= c[1] - 1; i++) { if(!grid[i][t]) f = 0; } ans[c[2]] += f; } } for(int i = 0; i <= q; i++) { if(ans[i] == -1) continue; cout << ans[i] << "\n"; } } signed main() { fastio(); int test = 1; //cin>>test; while(test--) { solve(); } }
#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...