求助88分
查看原帖
求助88分
469484
2022lyh楼主2022/4/15 09:55
#include<bits/stdc++.h>
using namespace std;
long long n,k,ans=0;
long long l[100005];
bool check(int d){
	int cnt=0;
	for(int i=1;i<=n;i++){
		if(l[i]>d)
			cnt+=l[i]/d;	
	}
	if(cnt>=k)
		return 1;
	else
		return 0;
}
int main(){
	long long N=0;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>l[i];
		N=max(N,l[i]);
    }
	long long L=0,R=N;
	while(L<=R){
		long long mid=(L+R)/2;
		if(check(mid)){
			ans=mid;
			L=mid+1;
		}
		else 
			R=mid-1;
	}
	cout<<ans<<endl;
	return 0;
}
2022/4/15 09:55
加载中...