#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int n;
cin >> n;
vector<int> x(n, 0), y(n, 0);
for (int i = 0; i < n; ++i) {
cin >> x[i];
}
for (int i = 0; i < n; ++i) {
cin >> y[i];
}
vector<int> prex(n, 0);
prex[0] = x[0];
for (int i = 1; i < n; ++i) {
prex[i] = prex[i - 1] + x[i];
}
vector<int> spots(n + 1, 0);
spots[n] = prex[n - 1];
int ans = 0;
int taken = 0;
for (int i = n - 1; i > 0; --i) {
spots[i] = min(spots[i + 1], prex[i - 1]);
int t = min(spots[i], y[i]);
ans += t;
taken += t;
y[i] -= t;
if (i < n - 1) {
spots[i] = min(prex[i] - t, spots[i + 1]);
if (spots[i] > 0) {
int a = min(y[i], spots[i]);
y[i] -= a;
taken += a;
spots[i] -= a;
}
}
if (taken == prex[n - 2]) {
break;
}
}
spots[0] = spots[1];
if (spots[0] > 0) {
int a = min(y[0], spots[0]);
y[0] -= a;
taken += a;
}
y[n - 1] = 0;
for (int i = 0; i < n; ++i) {
ans -= y[i];
}
cout << ans << '\n';
}