Submission #1237325

#TimeUsernameProblemLanguageResultExecution timeMemory
1237325marOsumnjičeni (COCI21_osumnjiceni)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 4e5+10; const int maxk = 20; ll l[maxn], r[maxn], up[maxn][maxk]; ll st[4*maxn], lazy[4*maxn]; vector<ll> comp; void propagate(ll id, ll l, ll r){ if(lazy[id]){ ll mid = (l+r)/2; update(id*2, l, mid, l, mid, lazy[id]); update(id*2+1, mid+1, r, mid+1, r, lazy[id]); lazy[id] = 0; } } void update(ll id, ll l, ll r, ll ql, ll qr, ll val){ if(ql > r || qr < l) return; if(ql <= l && r <= qr){ st[id] += val; lazy[id] += val; return; } propagate(id, l, r); ll mid = (l+r)/2; update(id*2, l, mid, ql, qr, val); update(id*2+1, mid+1, r, ql, qr, val); st[id] = max(st[id*2], st[id*2+1]); } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); ll n, q; cin >> n; for(ll i=1;i<=n;i++){ cin >> l[i] >> r[i]; comp.push_back(l[i]); comp.push_back(r[i]); } sort(comp.begin(), comp.end()); comp.erase(unique(comp.begin(), comp.end()), comp.end()); for(ll i=1;i<=n;i++){ l[i] = lower_bound(comp.begin(), comp.end(), l[i]) - comp.begin() + 1; r[i] = lower_bound(comp.begin(), comp.end(), r[i]) - comp.begin() + 1; } ll j = 0; for(ll i=1;i<=n;i++){ while(j < n && st[1] <= 1){ j++; update(1, 1, 2*n, l[j], r[j], 1); } if(st[1] > 1) up[i][0] = j; else up[i][0] = j + 1; update(1, 1, 2*n, l[i], r[i], -1); } up[n+1][0] = n+1; for(ll k=1;k<maxk;k++){ for(ll i=1;i<=n+1;i++){ up[i][k] = up[up[i][k-1]][k-1]; } } cin >> q; while(q--){ ll a, b; cin >> a >> b; ll ans = 0; for(ll k=maxk-1;k>=0;k--){ if(up[a][k] <= b){ ans += (1ll << k); a = up[a][k]; } } cout << ans+1 << endl; } return 0; }

Compilation message (stderr)

Main.cpp: In function 'void propagate(ll, ll, ll)':
Main.cpp:15:9: error: 'update' was not declared in this scope
   15 |         update(id*2, l, mid, l, mid, lazy[id]);
      |         ^~~~~~