//#include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
int main(){
int N, slot, user;
cin >> N;
vector<int> slots(N+1,0);
vector<int> users(N+1,0);
for (int i = 0; i < N; ++i){
cin >> slots[i];
}
for (int i = 0; i < N; ++i){
cin >> users[i];
}
int sol = 0;
vector<int> available;
for (int i = 1; i < N; ++i){
if (slots[i-1] > 0){
available.push_back(i-1);
}
// for (int i: available){
// cout<<i<<' ';
// }
// cout<<endl;
for (int z = available.size()-1; z >= 0; --z){
int j = available[z];
if (users[i] > slots[j]){
users[i] -= slots[j];
sol += slots[j];
available.pop_back();
slots[j]= 0;
}else{
sol += users[i];
slots[j] -= users[i];
users[i] = 0;
if (slots[j] == 0) available.pop_back();
break;
}
}
}
for (int i = 0; i <N; ++i){
if (users[i] > 0 && slots[i] > 0){
if (users[i] >= slots[i]){
users[i] -= slots[i];
slots[i]= 0;
}else{
slots[i] -= users[i];
users[i] = 0;
}
}
}
for (int i = 0; i < N; ++i){
sol-= users[i];
}
cout<<sol<<endl;
}
# | 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... |