#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector a(n), b(n); for (int& x : a) cin >> x; for (int& x : b) cin >> x; int ans = n; for (int start = 0; start < n; ++start) { // (現在レベル, 戦闘回数, モンスター番号) priority_queue< tuple, vector>, greater> > pq; for (int i = 0; i < n; ++i) { pq.emplace(a[i], 0, i); } int mx = 0; for (int k = 0; k < n; ++k) { auto [level, cnt, id] = pq.top(); pq.pop(); level += b[(start + k) % n] / 2; cnt++; mx = max(mx, cnt); pq.emplace(level, cnt, id); // これ以降、最大戦闘回数が減ることはない if (mx >= ans) break; } ans = min(ans, mx); } cout << ans << '\n'; }