有没有大佬帮帮啊TLE了......
查看原帖
有没有大佬帮帮啊TLE了......
54413
WQMLL楼主2021/7/31 18:55

这个.....我这个二分TLE,有没有大佬帮我看看......```

#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int main()
{
	int n,m,s=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	int left=0,right=1e8,mid;
	while(right>=left)
	{
		mid=(right+left)/2;
		for(int i=1;i<=n;i++)
		{
			if((a[i]-mid)>0)
			{
				s+=a[i]-mid;
			}
		}
		if(s>m)
		{
			left=mid;
		}
		else if(s<m)
		{
			right=mid;
		}
		else
		{
			cout<<mid<<endl;
			return 0;
		}
		s=0;
	}
	if(s<m)
	{
		cout<<mid-1;
	}
	else cout<<mid;
    return 0;
}
2021/7/31 18:55
加载中...