#include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = uint32_t; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; template using GPQ = priority_queue, greater>; int main() { int n; cin >> n; vector a(n), b(2*n); for (auto &&i : a) scanf("%d", &i); for (int i = 0; i < n; ++i) { scanf("%d", &b[i]); b[i+n] = b[i]; } using P = pair; int ans = INF; for (int i = 0; i < n; ++i) { GPQ

Q; for (int j = 0; j < n; ++j) { Q.emplace(a[j], 0); } for (int k = 0; k < n; ++k) { auto p = Q.top(); Q.pop(); p.first += b[i+k]/2; p.second++; Q.emplace(p); } int w = 0; while(!Q.empty()){ w = max(w, Q.top().second); Q.pop(); } ans = min(ans, w); } cout << ans << "\n"; return 0; }