Submission #870485

#TimeUsernameProblemLanguageResultExecution timeMemory
870485garam1732Food Court (JOI21_foodcourt)C++14
21 / 100
296 ms39504 KiB
#include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define bl " " #define endl "\n" #define all(v) v.begin(), v.end() #define comp(v) v.erase(unique(all(v)), v.end()) typedef long long ll; typedef pair<int, int> pi; typedef pair<pi, int> pii; typedef pair<ll, ll> pll; const int MAXN = 250250; const int MOD = 998244353; vector<pll> tree, lazy; void prop(pll &x, pll &y) { x.ff += y.ff; x.ss = max(x.ss+y.ff, y.ss); } void update_lazy(int node, int s, int e) { if(lazy[node].ff || lazy[node].ss) { prop(tree[node], lazy[node]); if(s != e) { prop(lazy[node<<1], lazy[node]); prop(lazy[node<<1|1], lazy[node]); } lazy[node] = pll(0, 0); } } void update(int node, int s, int e, int l, int r, pll v) { update_lazy(node, s, e); if(e < l || r < s) return; if(l <= s && e <= r) { prop(lazy[node], v); update_lazy(node, s, e); return; } int mid = s+e>>1; update(node<<1, s, mid, l, r, v); update(node<<1|1, mid+1, e, l, r, v); } void solve(int node, int s, int e, int idx, ll &x) { update_lazy(node, s, e); if(e < idx || idx < s) return; if(s == e) { x = max(tree[node].ff, tree[node].ss); return; } int mid = s+e>>1; solve(node<<1, s, mid, idx, x); solve(node<<1|1, mid+1, e, idx, x); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m, q; cin >> n >> m >> q; tree.resize(1 << 20); lazy.resize(1 << 20); while(q--) { int t; cin >> t; if(t == 1) { int l, r, c, k; cin >> l >> r >> c >> k; update(1, 1, n, l, r, pll(k, 0)); } else if(t == 2) { int l, r, k; cin >> l >> r >> k; update(1, 1, n, l, r, pll(-k, 0)); } else { int a; ll b; cin >> a >> b; ll x; solve(1, 1, n, a, x); //cout<<x<<endl; cout << (x >= b ? 1 : 0) << endl; } } }

Compilation message (stderr)

foodcourt.cpp: In function 'void update(int, int, int, int, int, pll)':
foodcourt.cpp:47:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   47 |     int mid = s+e>>1;
      |               ~^~
foodcourt.cpp: In function 'void solve(int, int, int, int, ll&)':
foodcourt.cpp:59:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   59 |     int mid = s+e>>1;
      |               ~^~
#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...