#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int N;
cin >> N;
vector<int> slot(N), person(N);
for (int i = 0; i < N; i++) cin >> slot[i];
for (int i = 0; i < N; i++) cin >> person[i];
int ans = 0;
// pool[i] = 還沒分配的 level i 使用者
vector<int> pool(N, 0);
for (int tier = 0; tier < N; tier++) {
pool[tier] += person[tier]; // 加入這層的使用者
int free = slot[tier];
// 先分配給比 tier 高的使用者 → upvote
for (int level = N-1; level > tier && free > 0; level--) {
int take = min(pool[level], free);
pool[level] -= take;
free -= take;
ans += take;
}
// 再分配給同等級 → 0
int take = min(pool[tier], free);
pool[tier] -= take;
free -= take;
// ans 不變
}
// 剩下的使用者只能往更高 tier → downvote
for (int i = 0; i < N; i++) ans -= pool[i];
cout << ans << "\n";
}