思路
从小到达排序后,枚举选择AOE攻击的次数,前面的肯定直接都消灭掉了,算出来后面的剩余的减去AOE伤害
更新最小值即可

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[1<<18],b[1<<18];
ll n,x;
int main()
{
    cin>>n>>x;
    ll ans=1e18;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++) b[i]=b[i-1]+a[i];
    for(int i=0;i<=n;i++){
        ans=min(ans,1ll*a[i]*x+b[n]-b[i]-(n-i)*a[i]);
    }
    cout<<ans;
    return 0;
}