76分,求调
查看原帖
76分,求调
985457
caokang楼主2025/8/1 17:38

4,6测试点RE

#include<bits/stdc++.h>
using namespace std;
long long a[1000010];
int n, k;
bool check(int x){
	int res = 0;
	for(int i = 1; i <= n; i++){
		res += a[i] / x;
	}
	return res >= k;
}
int main(){
	cin >> n >> k;
	for(int i = 1; i <= n; i++){
		scanf("%d", &a[i]);
	}
	long long l = 0;
	long long r = 1000000001;
	long long ans = 0;
	while(l <= r){
		long long mid = (l + r) >> 1;
		if(check(mid)){
			ans = max(ans, mid);
			l = mid + 1;
		}else{
			r = mid - 1;
		}
	}
	cout << ans;
	return 0;
}
2025/8/1 17:38
加载中...