Submission #431376

#TimeUsernameProblemLanguageResultExecution timeMemory
431376HideoFood Court (JOI21_foodcourt)C++17
14 / 100
1095 ms240840 KiB
#include <bits/stdc++.h> using namespace std; #define all(s) s.begin(), s.end() #define int long long #define ll long long #define fr first #define sc second #define pb push_back #define mk make_pair #define pi pair < int, int > const int N = 65007; const int INF = 1e9 + 7; ll cnt[N]; int n, m, q; deque < pair < ll , pi > > dq[N]; set < int > s; set < int > :: iterator itl; main (){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m >> q; for (int i = 1; i <= q; i++){ int t; cin >> t; if (t == 1){ int l, r, c, k; cin >> l >> r >> c >> k; for (int j = l; j <= r; j++){ dq[j].pb({cnt[j], {k, c}}); cnt[j] += k; s.insert(j); } } else if (t == 2){ int l, r, k; cin >> l >> r >> k; int prv = l - 1; while (!s.empty()){ itl = s.lower_bound(prv + 1); if (itl == s.end()) break; int j = *itl; // cout << l << ' ' << r << ' ' << j << endl; if (j > r) break; int kc = k; while (!dq[j].empty() && kc){ int a = dq[j].front().sc.fr, b = dq[j].front().sc.sc, cc = dq[j].front().fr; dq[j].pop_front(); if (a > kc){ dq[j].push_front({cc + kc, {a - kc, b}}); break; } kc -= a; } if (dq[j].empty()) s.erase(j); prv = j; } } else { int a; ll b; cin >> a >> b; if (dq[a].empty()){ cout << 0 << endl; continue; } b += dq[a].front().fr; if (dq[a].back().fr + 1ll * dq[a].back().sc.fr < b){ cout << 0 << endl; continue; } int l = 0, r = dq[a].size(); while (l + 1 < r){ int mid = (l + r) >> 1; if (dq[a][mid].fr < b) l = mid; else r = mid; } cout << dq[a][l].sc.sc << endl; } } }

Compilation message (stderr)

foodcourt.cpp:24:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   24 | main (){
      | ^~~~
#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...