//来个优先队列的写法 //满足a.top() >= b.top()就同时消去 void solve() { int n, x, y; cin >> n >> x >> y; priority_queue<int, vector<int>, greater<int>> a; priority_queue<int, vector<int>, greater<int>> b; for (int i = 0; i < n; i++) { int num; cin >> num; a.push(num); } for (int i = 0; i < n; i++) { int num; cin >> num; b.push(num); } while (a.top() >= b.top()) { a.pop(); b.pop(); } while (x--) { if (y > a.top()) { a.pop(); a.push(y); } else break; } long long t = 0; while (!a.empty()) { if(b.top()-t<=a.top()) { a.pop(); b.pop(); continue; } t += (b.top() - t - a.top()); a.pop(); b.pop(); } cout << t << endl; }