제출 #725709

#제출 시각아이디문제언어결과실행 시간메모리
725709Abrar_Al_SamitFood Court (JOI21_foodcourt)C++17
21 / 100
278 ms14816 KiB
#include<bits/stdc++.h> using namespace std; const int nax = 250003; int n, m, q; pair<long long, long long>st[nax * 4]; void unlazy(int v) { for(int c : {v*2, v*2+1}) { long long val = st[v].second; long long cut = min(val, st[c].first); st[c].first -= cut, val -= cut; st[c].second += val; st[c].first += st[v].first; } st[v] = {0LL, 0LL}; } void add(int l, int r, int L, int R, long long del, int v) { if(l>R || r<L) return; if(l>=L && r<=R) { st[v].first += del; return; } unlazy(v); int mid = (l+r)/2; add(l, mid, L, R, del, v*2); add(mid+1, r, L, R, del, v*2+1); } void sub(int l, int r, int L, int R, long long del, int v) { if(l>R || r<L) return; if(l>=L && r<=R) { long long cut = min(st[v].first, del); st[v].first -= cut, del -= cut; st[v].second += del; return; } unlazy(v); int mid = (l+r)/2; sub(l, mid, L, R, del, v*2); sub(mid+1, r, L, R, del, v*2+1); } long long query(int l, int r, int p, int v) { if(l==r) { return st[v].first; } unlazy(v); int mid = (l+r)/2; if(p<=mid) return query(l, mid, p, v*2); else return query(mid+1, r, p, v*2+1); } void PlayGround() { cin>>n>>m>>q; while(q--) { int tp; cin>>tp; if(tp==1) { long long l, r, c, k; cin>>l>>r>>c>>k; add(1, n, l, r, k, 1); } else if(tp==2) { long long l, r, k; cin>>l>>r>>k; sub(1, n, l, r, k, 1); } else { long long a, b; cin>>a>>b; long long cur = query(1, n, a, 1); if(cur>=b) cout<<"1\n"; else cout<<"0\n"; } } // cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); PlayGround(); return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...