普及2 第3题

#include<bits/stdc++.h>
using namespace std;
long long t,n,k,a[200010];
int main(){
	cin>>t;
	while(t--){
		cin>>n>>k;long long mi=1e10,t;
		for(int i=1;i<=n;i++)cin>>a[i],mi=min(mi,a[i]),t+=a[i];
		int sum=0;sort(a+1,a+n+1);
		if(a[1]>k/n)sum+=a[1]-k/n;
		for(int i=n;i>=3;i--){
			if(a[i]!=mi){
				t-=a[i]-mi;
				a[i]=mi;
				sum++;
			}if(t<=k)break;
		}if(t>k)sum+=min(t-k,1LL);
		cout<<sum-1<<endl;
	}
	return 0;
}
2 个赞

题目或题面,你要养成良好习惯,OK?

1 个赞

不是你二分呢?

1 个赞

还有就是代码要写清楚点,改换行要换行,该注释要注释,不然是真的很乱 :sweat:

1 个赞

vocal

1 个赞

我重写了,做对了

2 个赞