#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> cnt_slots(n), cnt_users(n);
for (int &i : cnt_slots) {
cin >> i;
}
for (int &i : cnt_users) {
cin >> i;
}
set<int> active_slots;
for (int i = 0; i < n; ++i) {
active_slots.insert(i);
}
int ans = 0;
// for j<i with biggest j we pair cnt_slots[j] with cnt_users[i]
for (int i = 0; i < n; ++i) {
// biggest j<i that's active
auto it = active_slots.lower_bound(i);
if (it == active_slots.begin()) {
continue;
}
int j = *--it;
int x = min(cnt_slots[j], cnt_users[i]);
ans += x;
cnt_slots[j] -= x, cnt_users[i] -= x;
if (cnt_slots[j] == 0) {
active_slots.erase(j);
}
}
// remove equal
for (int i = 0; i < n; ++i) {
int x = min(cnt_slots[i], cnt_users[i]);
cnt_slots[i] -= x, cnt_users[i] -= x;
}
// everyone else rates negative
ans -= accumulate(cnt_users.begin(), cnt_users.end(), 0);
cout << ans << '\n';
}