如题,分类讨论,只有 10 分,是什么地方没有考虑到吗?
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,a[100010],ans;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n);
for(int i=2;i<=n-1;i++){
int tmp=min(m,a[n]-a[i]);
a[i]+=tmp;
m-=tmp;
}
if(m>0){
if(m%2==1){
a[n-2]+=1;
a[n-1]+=m/2;
a[n]+=m/2;
}else{
a[n-1]+=m/2;
a[n]+=m/2;
}
m=0;
}
sort(a+1,a+1+n);
for(int i=2;i<=n-1;i++){
ans+=a[i];
}
cout<<ans<<endl;
return 0;
}