求助,第四个测试点五个WA
查看原帖
求助,第四个测试点五个WA
1001852
majiatao楼主2023/11/30 09:44
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll n,m,a[100000+5],sum=0;
int main() 
{
	scanf("%lld%lld",&n,&m);
	for(int i=1; i<=n; i++)
		scanf("%lld",&a[i]);
	sort(a+1,a+n+1);
	if(n==3) 
	{
		ll ans=a[2]+a[3]+m;
		ans=ans/2;
		cout<<ans;
		return 0;
	}
	for(int j=2; j<n; j++) 
	{
		if(m==0) break; 
		if(m>=(a[n]-a[j]))
		{
			m-=a[n]-a[j];
			a[j]=a[n];
		}
		else 
		{
			if(m==0) break;
			else 
			{
				if(a[j]+m>a[n])
				{
					m-=a[n]-a[j];
					a[j]=a[n];
				}
				else 
				{
					a[j]+=m;
					m=0;
					break;
				}
				
			}
		}
		if(m==0) break;
	}
	if(m>0) 
	{
		ll ans=m+a[n]+a[n-1];
		ans/=2;
		a[n-1]=ans;
	}
	sort(a+1,a+n+1);
	for(int i=2; i<n; i++)
		sum+=a[i];
	printf("%lld",sum);
	return 0;
}
2023/11/30 09:44
加载中...