#include <iostream>
#include <queue>
using namespace std;
#define f first
#define s second
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
// freopen("input.in","r",stdin);
int N;cin>>N;
int remSlots[N],nbP[N];
for(int i=0;i<N;i++){
cin>>remSlots[i];
}
for(int i=0;i<N;i++){
cin>>nbP[i];
}
int it=N-1; //iterator over slots;
int vote=0;
for(int i=N-1;i>=0;i--){ //for each group of people
it=min(it,(i-1));
while(it>=0 && nbP[i]>0){
if(remSlots[it]==0){
it--;
continue;
}
if(remSlots[it]<nbP[i]){
vote+=remSlots[it];
nbP[i]-=remSlots[it];
remSlots[it]=0;
}
else{
vote+=nbP[i];
remSlots[it]-=nbP[i];
nbP[i]=0;
}
}
}
it=0;
for(int i=0;i<N;i++){
if(remSlots[i]<nbP[i]){
nbP[i]-=remSlots[i];
remSlots[i]=0;
vote-=nbP[i];
}
else{
remSlots[i]-=nbP[i];
nbP[i]=0;
}
}
cout<<vote;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |