![在这里插入图片描述](https://img-blog.csdnimg.cn/5a21514ab462451eb11fd3c4b0a16532.png)
解析
- 首先 每个巧克力最终都是需要吃的,所以我们只需要考虑,早上吃哪些会比较赚
- 对于每个元素,赋予其优先级,优先级越高排最前面,我们按顺序吃下来
- 优先级的定义为,早上吃的比晚上吃,对整体收益更大。
只需要对每个元素之间做差俩俩排序即可。
代码
#include<bits/stdc++.h>
using namespace std;
const int N =100005;
typedef pair<int,int> pii;
pii r[N];
int main(){
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>r[i].first;
for(int i=1;i<=n;i++)cin>>r[i].second;
sort(r+1,r+1+n,[](pii a,pii b)->bool {return a.first-b.first > a.second-b.second;});
long long res=0;
for(int i=1;i<=n;i++){
if(i<=k)res+=r[i].first;
else res+=r[i].second;
}
cout<<res;
}