看完题解后饱受启发,写一篇充当备忘录

#include<bits/stdc++.h>

using namespace std;

struct candy//定义结构体关联糖果在早上和晚上的甜蜜度

{

long long m;
long long n;

}c[100010];

bool cmp(candy x,candy y)//自定义结构体类型的sort函数,排序使早晚差值大的在前面,即早上吃的划算程度

{

return x.m-x.n>y.m-y.n;

}

int main()

{

int n,k,i;
cin>>n>>k;
for(i=0;i<n;i++) cin>>c[i].m;
for(i=0;i<n;i++) cin>>c[i].n;
sort(c,c+n,cmp);
long long sum=0;
for(i=0;i<n;i++) sum+=c[i].m;//假设全部在早上吃,此时是最划算
for(i=k;i<n;i++) sum+=c[i].n-c[i].m;//但实际情况下还规定了晚上和早上吃的数量,减去后n-k(晚上吃)的早晚差值
cout<<sum;

}