#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //using namespace atcoder; using namespace std; using ll = long long; #define all(A) A.begin(),A.end() using vll = vector; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) using Graph = vector>>>; int main() { ll N; cin >> N; vll A(N), B(N); rep(i, N) { cin >> A[i]; } rep(i, N) { cin >> B[i]; } ll an = 1e18; rep(i, N) { priority_queue, vector>, greater>> Q; rep(k, N) { Q.push(make_pair(A[k], ll(0))); } ll j = 0; rep(k, N) { auto p = Q.top(); Q.pop(); Q.push(make_pair(p.first + B[(k + i) % N] / 2, p.second + 1)); j = max(j, p.second + 1); } an = min(an, j); } cout << an << endl; }