普及2 第3题 0

#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 个赞

先认真思考一下吧!

4 个赞

能看看我的题吗!!!求你了

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;
mi=k/n;
for(int i=n;i>=2;i–){
if(a[i]!=mi){
t-=a[i]-mi;
a[i]=mi;
sum++;
}if(t<=k)break;
}cout<<sum<<endl;
}
return 0;
}0 wa

3 个赞

这个思路应该AC不了,另外除了思路以外,还有一些粗心的地方,例如全局一个t变量,局部也有一个t变量,并未初始化,直接进行累加等

4 个赞