#include #include #include using namespace std; int main() { int N; cin >> N; vector A(N), B(N); for (int i = 0; i < N; ++i) cin >> A[i]; for (int i = 0; i < N; ++i) cin >> B[i]; vector used(N, false); int height = 1; for (int step = 0; step < N; ++step) { priority_queue> pq; for (int i = 0; i < N; ++i) { if (!used[i] && A[i] <= height) { pq.push({B[i], i}); } } if (pq.empty()) break; auto [gain, idx] = pq.top(); pq.pop(); used[idx] = true; height += gain; } cout << height << endl; return 0; }