题解:P11960 [GESP202503 五级] 平均分配
CSP_S_2023_T2 · · 题解
思路
首先,我们假设所有物品全部卖给小 B,则收入为
而第
所以我们只需对
代码
#include<bits/stdc++.h>
using namespace std;
long long n,b[200005],c,a[200005],ans;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=0;i<n*2;i++) cin>>b[i],ans+=b[i]; //全部卖给小 B 的收入
for(int i=0;i<n*2;i++) cin>>c,a[i]=c-b[i]; //记录第 i 件物品对答案的贡献
sort(a,a+n*2,greater<long long>()); //从大到小排序
for(int i=0;i<n;i++) ans+=a[i]; //更新答案
cout<<ans;
return 0; //完结撒花
}