48分HELP!!!!!!
查看原帖
48分HELP!!!!!!
731423
封禁用户楼主2022/7/19 17:27
#include<iostream>
#include<cstdio>
using namespace std;
const int N=10005;
int n,k;
int a[N],maxn=0;
bool check(int mid){
	long long cnt=0;
	for(int i=1;i<=n;i++){
		if(a[i]>mid)cnt+=a[i]/mid;
	}
	return cnt>=k;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		maxn=max(maxn,a[i]);
	}
	int l=1,r=maxn,mid;
	while(l<r){
		mid=(l+r+1)>>1;
		if(check(mid)) l=mid;
		else r=mid-1;
	}
	cout<<r;
    return 0;
}
2022/7/19 17:27
加载中...