84分求助
查看原帖
84分求助
316762
梦幻之旅楼主2021/9/4 13:51

最后一个点老是过不去,记录在这,请问能帮我寻找问题么? 代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N],n,k,maxlen;
long long sum;
int  check(int x) {
	long long s=0;
	for(int i=1; i<=n; i++) s += a[i] / x;
	return s ;
}
int main() {
	cin >> n >> k;
	for(int i=1; i<=n; i++) {
		cin >> a[i];
		maxlen = max(maxlen, a[i]) ;
		sum += a[i];
	}
	if(maxlen < k) cout<< 0 <<endl;
	else {
		int l = 1, r = maxlen;
		while(l<r) {
			int mid = l+r+1>>1;
			if(check(mid)>=k) l = mid;
			else r = mid - 1;
		}
		cout<< l <<endl;
	}
	return 0;
}
2021/9/4 13:51
加载中...