马蜂(码风)

· · 个人记录

upt 2023.08.08 限时奖励,猜对是主题库的哪道题的 AC 代码有奖,可私信。(仅限粉丝)

请注意,无论是领奖还是回答,均不能以公开的方式展出,否则取消奖励。(最好私信回答)

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, a[100007];
signed main(){
      cin >> n >> m;
      for(int i = 0; i <= n - 1; ++i){
            cin >> a[i];
      }
      sort(a, a + n);
      int sum = 0, hope = 0, add = 0;
      for(int i = 1; i <= n - 2; ++i){
            sum += a[i];
      }
      hope = a[n - 1] * (n - 2);
      add = hope - sum;
      if(m <= add){
            int ans = 0;
            for(int i = 1; i <= n - 2; ++i){
                  ans += a[i];
            }
            ans += m;
            cout << ans << endl;
            return 0;
      }
      m -= add;
      for(int i = 1; i <= n - 2; ++i){
            a[i] = a[n - 1];
      }
      int t = m / (n - 1);
      for(int i = 1; i <= n - 1; ++i){
            a[i] += t;
      }
      m %= (n - 1);
      for(int i = 1; i <= m; ++i){
            ++a[i];
      }
      int maxn = -1;
      sum = 0;
      for(int i = 1; i <= n - 1; ++i){
            sum += a[i];
            maxn = max(maxn, a[i]);
      }
      cout << sum - maxn << endl;
      return 0;
}