题目描述:
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。
输入:
第一行是两个正整数N和K(1 ≤ N ≤ 10000,1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。
输出:
输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出"0"。
输入样例:
3 7
232
124
456
输出样例:
114
程序:
#include <stdio.h>
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;
} 