Submission #797203

#TimeUsernameProblemLanguageResultExecution timeMemory
797203vjudge1Food Court (JOI21_foodcourt)C++14
7 / 100
1089 ms524288 KiB
#include<bits/stdc++.h> #define ll long long #define fi first #define se second using namespace std ; const int N = 25e4 ; ll n, m, q ; deque<pair<ll, ll>> d[N + 1] ; signed main() { ios_base::sync_with_stdio( 0 ) ; cin.tie( 0 ) ; cout.tie( 0 ) ; cin >> n >> m >> q ; while(q--) { ll type, l, r, c, k, a, b ; cin >> type ; if(type == 1) { cin >> l >> r >> c >> k ; for(ll i = l ; i <= r ; i++) d[i].push_back({c, k}) ; } if(type == 2) { cin >> l >> r >> k ; for(ll i = l ; i <= r ; i++) { ll sum = 0, k1 = k ; for(auto j : d[i]) sum += j.se ; if(sum < k1) { d[i].clear() ; continue ; } while(k1) if(d[i][0].se <= k1) { k1 -= d[i][0].se ; d[i].pop_front() ; } else { pair<ll, ll> p = {d[i][0].fi, d[i][0].se - k1} ; d[i].pop_front() ; d[i].push_front(p) ; k1 = 0 ; } } } // for(int i = 1 ; i <= n ; i++) // { // cout << i << '\n' ; // for(auto j : d[i]) // cout << j.fi << ' ' << j.se << '\n' ; // } // cout << "__________________\n" ; if(type == 3) { ll sum = 0, ans = 0 ; cin >> a >> b ; for(auto i : d[a]) sum += i.se ; if(sum < b) { cout << "0\n" ; continue ; } for(auto i : d[a]) if(i.se < b) b -= i.se ; else { ans = i.fi ; break ; } cout << ans << "\n" ; } } 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...