为啥会有一个不行,求指点
查看原帖
为啥会有一个不行,求指点
1505433
shocked楼主2024/11/3 21:11
#include<iostream>
#include<algorithm>

using namespace std;

const int N = 1e5 + 5;
long long a[N], sum, cnt;

void so()
{
	int n, m;
	cin >> n >> m;
	for(int i = 0; i < n; i++)
		cin >> a[i];
	sort(a, a + n);
	for(int i = 1; i < n - 1; i++)
	{
		sum += a[i];
		cnt += a[n - 1] - a[i];
	}
	if(cnt == m)
	{
		sum = a[n - 1] * (n - 2);
		cout << sum << endl;
	}
	else if(cnt > m)
	{
		sum = sum + m;
		cout << sum << endl;
	}
	else
	{
		int temp1 = (m - cnt) / (n - 1);
		int temp2 = (m - cnt) % (n - 1);
		sum = a[n - 1] * (n - 1);
		sum = sum + temp1 * (n - 2) + temp2 - a[n - 1] - 1;
		cout << sum << endl;
	}
}

int main()
{
	so();
	return 0;
}
2024/11/3 21:11
加载中...