无法过样例,求助
查看原帖
无法过样例,求助
747883
xhz0311楼主2023/4/16 12:50
#include <bits/stdc++.h>
using namespace std;
int n,k,a[100010],l,r=100000010,mid,ans;
bool check(int x)
{
	long long sum=0;
	for (int i=1; i<=n; i++)
	{
		sum+=a[i]/x;
	}
	return sum>=k;
}
int main()
{
	cin>>n>>k;
	for (int i=1; i<=n; i++)
	{
		cin>>a[n];
	}
	while (l<=r)
	{
		mid=l+(r-l)/2;
		if (check(mid))
		{
			ans=mid;
			l=mid+1;
		}
		else
		{
			r=mid-1;
		}
		//cout<<l<<" "<<mid<<" "<<r<<endl;
	}
	cout<<ans;
	return 0;
}

其中,二分变量 l mid r 经检查正确。

2023/4/16 12:50
加载中...