服装店导购员工作内容:完善程序

来源:百度文库 编辑:高校问答 时间:2024/05/04 16:45:11
2.木材加工
题目描述:
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求得到的小段木头的长度也是正整数。
输入:第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。
接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。
输出:输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出"0"。
输入样例:
3 7
232
124
456
输出样例:
114
程序:
var
n,k :integer;
len : array[1..10000] of integer;
i,left,right,mid : integer;
function isok(t : integer) : boolean;
var
num,i : integer;
begin
num := 0;
for i := 1 to n do begin
if num >= k then break;
num := ① ;
end;
if ② then isok := true
else isok :=false;
end;
begin
readln(n,k);
right := 0;
for i := 1 to n do begin
readln(len[i]);
if right < len[i] then right := len[i];
end;
inc(right); ③ ;
while ④ < right do begin
mid := (left + right) div 2;
if ⑤ then right := mid
else left := mid;
end;
writeln(left);
end.

很难的,帮帮忙!

O分啊 估计没人帮你了!
我是不会

O分啊 估计没人帮你了!
我是不会