Submission #983277

#TimeUsernameProblemLanguageResultExecution timeMemory
983277vjudge1Street Lamps (APIO19_street_lamps)C++17
40 / 100
115 ms24032 KiB
#include<bits/stdc++.h> #define sz size() #define ll long long using namespace std; const ll N = 4e6; ll f[N], s[N], T = 1; ll fget(ll i, ll res = 0) { for(; i > 0; i -= (i & -i)) res += f[i]; return res; } void fupd(ll i, ll x) { for(; i < N; i += (i & -i)) f[i] += x; } ll get(ll l, ll r, ll res = 0) { l += T - 1, r += T - 1; for(; l <= r; l >>= 1, r >>= 1) { if(l % 2 == 1) res = max(res, s[l++]); if(r % 2 == 0) res = max(res, s[r--]); } return res; } void upd(ll i, ll x) { i += T - 1; s[i] = x; for(; i > 1; i >>= 1) s[i >> 1] = max(s[i], s[i ^ 1]); } ll cnt[205][205]; void solve() { ll n, q, i, j, k; cin >> n >> q; while(T < n) T <<= 1; string s; cin >> s; ll a[n + 1], sum[n + 1] = {}, lst[n + 1] = {}; for(i = 1; i <= n; ++i) a[i] = s[i - 1] - '0'; if(n <= 200 && q <= 200) { for(i = 1; i <= n; ++i) for(j = i; j <= n; ++j) { if(!a[j]) break; ++cnt[i][j]; } while(q--) { cin >> s; ll l, r; if(s == "toggle") cin >> l, a[l] ^= 1; else cin >> l >> r, cout << cnt[l][r - 1] << '\n'; for(i = 1; i <= n; ++i) for(j = i; j <= n; ++j) { if(!a[j]) break; ++cnt[i][j]; } } return; } string s1[q + 1]; ll l1[q + 1], r1[q + 1] = {}; ll ok = 1; for(i = 1; i <= q; ++i) { cin >> s1[i] >> l1[i]; if(s1[i] == "query") { cin >> r1[i]; ok &= (r1[i] - l1[i] == 1); } } if(ok) { for(i = 1; i <= q; ++i) { s = s1[i]; ll l = l1[i], r = r1[i]; if(s == "toggle") { cin >> l; sum[l] += (i - lst[l]) * a[l]; a[l] ^= 1; lst[l] = i; continue; } cin >> l >> r; cout << sum[l] + (i - lst[l]) * a[l] << '\n'; } return; } for(i = 1; i <= q; ++i) { s = s1[i]; ll l = l1[i], r = r1[i]; if(s == "toggle") { fupd(l, 1); upd(l, i); continue; } ll ans = 0; if(fget(r - 1) - fget(l - 1) == r - l) ans = (i - get(l, r - 1)); cout << ans << '\n'; } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); solve(); }

Compilation message (stderr)

street_lamps.cpp: In function 'void solve()':
street_lamps.cpp:41:20: warning: unused variable 'k' [-Wunused-variable]
   41 |     ll n, q, i, j, k;
      |                    ^
#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...