求叉 div.3 A
  • 板块题目总版
  • 楼主_caiji_
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/7/10 22:27
  • 上次更新2023/11/4 15:07:22
查看原帖
求叉 div.3 A
390033
_caiji_楼主2021/7/10 22:27

如题,分类讨论,只有 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;
}
2021/7/10 22:27
加载中...