#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef tuple tp; typedef vector vt; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e8; const ll INF=1e16; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int main(){ int n; cin>>n; vi a(n),b(n); rep(i,n)cin>>a[i]; rep(i,n)cin>>b[i]; int out=inf; rep(i,n){ int ma=0; priority_queueque; rep(j,n)que.push(pii(-a[j],0)); rep(j,n){ int t=b[(i+j)%n]/2; pii p=que.top(); que.pop(); p.first-=t; p.second--; ma=max(ma,-p.second); que.push(p); } out=min(out,ma); } cout<