Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define int long long
- signed main(){
- int tst;
- cin>>tst;
- while(tst--){
- int n, k;
- cin >> n >> k;
- vector<pair<int, int>> c(n + 1);
- for (int i = 1; i <= n; i++) {
- cin >> c[i].second;
- }
- int res = 0;
- for (int i = 1; i <= n; i++) {
- cin >> c[i].first;
- res += max(0ll, c[i].first - c[i].second);
- }
- sort(c.begin() + 1, c.end());
- priority_queue<int> q;
- int ans = 0, sum = 0;
- for (int i = n; i; i--) {
- if (i <= n - k) {
- ans = max(ans, res - sum);
- }
- q.push(c[i].second);
- sum += c[i].second;
- if (q.size() > k) {
- sum -= q.top();
- q.pop();
- }
- res -= max(0ll, c[i].first - c[i].second);
- }
- cout << ans << "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement