求助!!!只过两个点为什么!
查看原帖
求助!!!只过两个点为什么!
304686
Coding__Yao楼主2022/2/7 19:14
#include<bits/stdc++.h>
using namespace std;
long long a[1000001],num=0,n,k;
long long l=0,r=100000001,mid;
int check(long long x)
{
	for(int i = 1;i <= n;i++)
	{ 
		num+=a[i]/x;
	}
	if(num >= k)return 1;
	return 0;
}
int main()
{
    cin>>n>>k;
	for(int i = 1;i <= n;i++)
		cin>>a[i];
	while(l+1 < r)
	{
		mid=l+(r-l)/2;
		if(check(mid)==1)l=mid;
		else r=mid;
	}
	cout<<l;
	return 0;
}
2022/2/7 19:14
加载中...