제출 #1224369

#제출 시각아이디문제언어결과실행 시간메모리
1224369asli_bgBikeparking (EGOI24_bikeparking)C++20
100 / 100
32 ms6844 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define sp <<' '<< #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define DEBUG(x) cout<<#x sp x<<endl; typedef vector<int> vi; typedef pair<int,int> pii; typedef vector<pii> vii; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0); int n; cin>>n; vi x(n+1), y(n+1); FORE(i,1,n+1) cin>>x[i]; FORE(i,1,n+1) cin>>y[i]; int ans=0; vii vec; FORE(i,1,n+1){ while(!vec.empty() and y[i]>0){ int ind=vec.back().se; int deg=vec.back().fi; vec.pop_back(); if(deg>y[i]){ deg-=y[i]; x[ind]-=y[i]; ans+=y[i]; y[i]=0; vec.pb({deg,ind}); } else{ ans+=deg; x[ind]=0; y[i]-=deg; } } if(x[i]>0) vec.pb({x[i],i}); } vec.clear(); FORE(i,1,n+1){ //cout<<"here" sp i sp x[i] sp y[i]<<endl; y[i]-=x[i]; if(y[i]<0) y[i]=0; ans-=y[i]; } cout<<ans<<endl; }
#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...