问题 3907 --木材加工(完善程序)

3907: 木材加工(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 205  解决: 161
[提交][状态][命题人:]

题目描述

木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。

#include <cstdio>
int n, k, len[10000]; 
int isok(int t)
{
	int num = 0, i;
	for (i = 0; i < n; i++)
	{
		if (num >= k) 
			break; 
		num = _____(1)_______
	}
	if (_____(2)______) 
		return 1; 
	else 
		return 0;
}
int main() 
{
	int i, left, right, mid; 
	scanf("%d%d", &n, &k); 
	right = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &(len[i]));
		if (right < len[i]) 
		right = len[i];
	}
	right++;
        _______(3)________;
	while (_____(4)______ < right)
	{
		mid = (left + right) / 2;
		if (______(5)______)
			right = mid; 
		else 
			left = mid;
	}
	printf ("%d\n", left); 
	return 0;
}


输入

第一行是两个正整数 N和K(1 ≤ N  ≤ 10000 , 1  ≤ K  ≤ 10000) , N是原木的数目, K是需要得到的小段的数目。接下来的 N行,每行有一个 1到10000之间的正整数,表示一根原木的长度。

输出

输出能够切割得到的小段的最大长度。如果连 1cm长的小段都切不出来,输出” 0”。

样例输入
Copy
3 7
232
124
456
样例输出
Copy
114

提示

来源

 

[提交][状态]