0分求助
查看原帖
0分求助
554990
felixshu楼主2023/7/14 15:05
#include<bits/stdc++.h>
using namespace std;
 int main()
{
	long long m,n;
	cin>>n>>m;
	long long a[100005];
	int maxn=0,minn=0x3f3f3f;
	
	for(int i=1;i<=n;i++)
	{
	cin>>a[i];	
	if(maxn<a[i])
	{
		maxn=a[i];
	}
	if(a[i]<minn)
	{
		minn=a[i];
	}
	 } 
	 long long l=minn,r=maxn,mid=(l+r)/2;
	 while(l+1<r)
	 {
	 	int sum=0;
	 	for(int i=1;i<=n;i++)
	 	{
	 		if(a[i]-mid<0)
	 		{
	 			sum+=0; 
			 }
			 else
		{
			sum+=a[i]-mid;
		}
		 }
		 if(sum>m)
		 {
		 	r=mid+1;
		 	mid=(l+r)/2;
		 }
		 if(sum<m)
		 {
		 	l=mid-1;
		 	mid=(l+r)/r;
		 }
		 if(sum==m)
		 {
		 	cout<<mid;
		 	return 0;
		 }
	 }
}
2023/7/14 15:05
加载中...