# include # include # include # include # include # include # include # include # include # include # include # include # include # include # include #include #include #include #include #include using namespace std; typedef long long int ll; const int N = 1000000; const ll mod = 1000000007; const ll INF = std::numeric_limits::max(); #define rep(i,n) for(ll i=(ll)0;i<(ll)n;++i) #define srep(i,s) rep(i,(ll)s.size()) #define vin(n,v) rep(i,n)cin>>v[i] #define ALL(x) x.begin(),x.end() #define pp pair #define fi first #define se second #define sz size() void YN(bool b) { cout << (b ? "YES" : "NO") << endl; } void yn(bool b) { cout << (b ? "Yes" : "No") << endl; } ll n, b[1510], aa[1510], mn = INF; priority_queue,greater>q; int main(){ cin >> n; pp p; p.se = 0; rep(i, n) { cin >> p.fi; aa[i] = p.fi; q.push(p); } rep(i, n)cin >> b[i]; rep(st, n) { rep(i, n) { pp a = q.top(); q.pop(); a.fi += b[(i + st) % n] / 2; a.se++; q.push(a); } priority_queueq2; rep(i, n) { pp a = q.top(); q.pop(); q2.push(a.se); } mn = min(q2.top(),mn); rep(i, n) {q.push(pp{ aa[i],0 }); } } cout << mn << endl; return 0; }