通过计算早晚甜蜜度的差值,,取差值最大的k个巧克力(即早上吃可以额外获得的甜蜜度(可以为负数)的最优选择)加入到晚上获得的甜蜜度总和,结果为最大甜蜜度
int cmp(int* e1,int* e2){
return *e2-*e1;
}
int main(){
int n,k;
scanf("%d %d",&n,&k);
int A[100005];
int B[100005];
int d[100005];
long long sum=0;
for(int i=0;i<n;i++){
scanf("%d",&A[i]);
}
for(int i=0;i<n;i++){
scanf("%d",&B[i]);
d[i]=A[i]-B[i];
sum+=B[i];
}
qsort(d, n, 4, cmp);
for(int i=0;i<k;i++){
sum+=d[i];
//printf("%d",d[i]);
}
printf("%lld",sum);
return 0;
}

京公网安备 11010502036488号