#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define endl '\n' #define all(v) (v).begin(), (v).end() #define uniq(v) (v).erase(unique((v).begin(), (v).end()), (v).end()) typedef long long ll; typedef pair P; typedef unsigned int uint; const int inf = 1000000009; int main() { int n; scanf("%d", &n); priority_queue, greater

> t_que; vector bs(2*n); for (int i = 0; i < n; i++) { int a; scanf("%d", &a); t_que.push(P(a, 0)); } for (int i = 0; i < n; i++) { int b; scanf("%d", &b); bs[i] = bs[i+n] = b; } int res = inf; for (int i = 0; i < n; i++) { priority_queue, greater

> que = t_que; int maxi = 0; for (int j = i; j < i + n; j++) { P p = que.top(); que.pop(); p.first += bs[j]/2; p.second++; maxi = max(maxi, p.second); que.push(p); } res = min(res, maxi); } printf("%d\n", res); }