제출 #1166498

#제출 시각아이디문제언어결과실행 시간메모리
1166498tsengangBikeparking (EGOI24_bikeparking)C++20
25 / 100
162 ms21520 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; for(ll i = 0; i < n; i++){ ll b; cin >> b; if(b > 0){ s.insert({i,b}); j+=b; } } 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; if(p.ss > 0)s.insert(p); } } for(auto [x,y] : s){ k+=min(a[x],y); } cout << ans*2+k-j; }
#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...