Submission #1166513

#TimeUsernameProblemLanguageResultExecution timeMemory
1166513tsengangBikeparking (EGOI24_bikeparking)C++20
25 / 100
168 ms23792 KiB
#include <bits/stdc++.h> #define ll long long #define ff first #define ss second #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define pb push_back #define ertunt return #define vodka void #define sleepearly ertunt using namespace std; int main() { ll n; cin >> n; vector<ll> a(n); for (ll i = 0; i < n; i++) cin >> a[i]; ll j = 0; set<pair<ll,ll>>s; ll b[n]; for(ll i = 0; i < n; i++){ cin >> b[i]; if(b[i] > 0){ s.insert({i,b[i]}); j+=b[i]; } } ll ans = 0; ll k = 0; for(ll i = 0; i < n; i++){ if(s.empty())break; while(a[i] > 0){ auto it = s.upper_bound({i,1e18}); if(it == s.end())break; s.erase(it); pair<ll,ll>p = *it; ll x = min(p.ss,a[i]); ans+=x; a[i]-=x; p.ss-=x; b[p.ff]-=x; if(p.ss > 0)s.insert(p); } } for(ll i = 0; i < n; i++){ ans-=max(0ll,b[i] - a[i]); } cout << ans; }
#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...