[GESP202503 五级] 平均分配
2025-09-25 13:31:15
发布于:四川
10阅读
0回复
0点赞
代码思路
首先,我们假设把这 件物品全部卖给了小b,则我们获得的总钱数为 ,而第 件物品从卖给小B到卖给小C对收入的贡献是 。我们对这个贡献排序,求前 项的和并加上全部卖给小 B 的收入即可。
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 2e5+1145;
int a[MAXN], b[MAXN], c[MAXN];
signed main() {
int n;
cin >> n;
int ans = 0;
for(int i = 0; i < 2*n; i ++) cin >> a[i];
for(int i = 0; i < 2*n; i ++) {
cin >> b[i];
ans += b[i];
}
for(int i = 0; i < 2*n; i ++) c[i] = (a[i]-b[i]);
sort(c, c+2*n);
for(int i = 2*n-1; i >= n; i --) ans += c[i];
cout << ans;
}
希望这篇题解对你有帮助。
这里空空如也
有帮助,赞一个