#include #include #include #include #include #include #include #define REP(i, a, b) for (int i = int(a); i < int(b); i++) #define dump(val) cerr << __LINE__ << ":\t" << #val << " = " << (val) << endl using namespace std; typedef long long int lli; typedef pair pii; template vector make_v(size_t a, T b) { return vector(a, b); } template auto make_v(size_t a, Ts... ts) { return vector(a, make_v(ts...)); } int main() { int N; cin >> N; priority_queue, greater> pq; REP(i, 0, N) { int a; cin >> a; pq.emplace(a, 0); } vector B(N); REP(i, 0, N) { cin >> B[i]; } int ans = N; REP(i, 0, N) { auto pqt = pq; REP(j, 0, N) { int idx = (i + j) % N; auto elem = pqt.top(); pqt.pop(); elem.first += (B[idx] / 2); elem.second++; pqt.push(elem); } int tmp = 0; while (pqt.size()) { tmp = max(tmp, pqt.top().second); pqt.pop(); } ans = min(ans, tmp); } cout << ans << endl; return 0; }