测试点#6WA求调!!!!!!!
查看原帖
测试点#6WA求调!!!!!!!
1474720
codingRE楼主2024/11/12 22:53
#include<stdio.h>
int arr[100005];
int n, k, l, left, right, mid;
int check(int mid) {
	int count = 0;
	if (mid == 0)
		return 0;
	for (int i = 0; i < n; ++i) {
		count += arr[i] / mid;
	}
	return count >= k;
}
int main()
{
	long long int sum = 0;
	int sz = 0;
	scanf("%d%d", &n, &k);
	for (int i = 0; i < n; ++i) {
		scanf("%d", &arr[i]);
		sum += arr[i];
	}
	sz = sum / n;//最大值上界
	right = sz;
	while(left<=right){
		mid = left + (right - left) / 2 ;
		if (check(mid)) {//检查
			left = mid + 1;
		}
		else
			right = mid - 1;
	}
	if ((right + left) < 1)
		printf("0\n");
	else
		printf("%d\n", (right + left) / 2);

	return 0;
}
2024/11/12 22:53
加载中...