#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int N, x, ans = INT_MAX; cin >> N;
vector<int> A, B = { 0 };
for (int i = 0; i < N; i++) {
cin >> x;
A.push_back(x);
}
for (int i = 0; i < N; i++) {
cin >> x;
B.push_back(x);
}
for (int i = 1; i <= N; i++) B[i] += B[i - 1];
priority_queue<pair<int, int>> pq;
for (int i = 0; i < N; i++) pq.push({ A[i] - B[i], i });
for (int i = 0; i < N; i++) {
while (pq.top().second >= 0 && pq.top().second < i) {
auto res = pq.top();
pq.pop();
pq.push({ res.first - B.back(), -1 });
}
ans = min(ans, pq.top().first + B[i]);
}
cout << ans << '\n';
}