题解 | AOE还是单体?
AOE还是单体?
https://www.nowcoder.com/practice/84dec7e96e3d4f75808b47e1b8b0280c
/*
给牌佬写高潮了,难道我真的是尖塔赋能哥
考虑aoe的情况,如果aoe的费高于怪的数量,那对于每个怪都减一hp就需要n*x的费来进行,还不如一人一个打击减血
所以用sum存储总血量,如果x>=n就输出sum就行了
考虑aoe与平a结合的情况,同上,如果aoe有效减血的怪小于x同样也是不如平a一个个减的,
所以先逆序排序记录vec[x]的血量,如果有ai的血高于vec[x]平a减血的效率更高,反之则是aoe的效率更高
所以代码如下,觉得写的好的点个赞呗
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n,x;
cin>>n>>x;
vector<long long>vec(n);
long long sum=0;
for(int i=0;i<n;i++){
cin>>vec[i];
sum+=vec[i];
}
sort(vec.begin(),vec.end(),greater<long long>());
if(x<n){
long long need=0;
for(int i=0;i<x;i++){
need+=vec[i]-vec[x];
}
cout<<need+vec[x]*x;
}
else{
cout<<sum<<endl;
}
return 0;
}