#include #include #include #include #include using namespace std; template using min_heap = priority_queue, greater>; const int INF = (int)1e9 + 7; int main() { int n; cin >> n; vector a(n); for (auto &ai: a) cin >> ai; vector b(n); for (auto &bi: b) cin >> bi; int mi = INF; for (int ofs = 0; ofs < n; ofs++) { min_heap> pq; for (auto &ai: a) pq.emplace(ai, 0); for (int i = 0; i < n; i++) { int cur = b[(i + ofs) % n]; int lvl, cnt; tie(lvl, cnt) = pq.top(); pq.pop(); pq.emplace(lvl + cur / 2, cnt + 1); } int ma = 0; while (!pq.empty()) ma = max(ma, pq.top().second), pq.pop(); mi = min(mi, ma); } cout << mi << endl; return 0; }