Pagini recente » Cod sursa (job #3124150) | Cod sursa (job #1837774) | Cod sursa (job #448170) | Cod sursa (job #541878) | Cod sursa (job #1453312)
var t:array[1..16000]of integer;
min,max,x,sum,n,i,k,tr,m:longint;
ok:boolean;
begin
assign(input,'transport.in');
reset(input);
readln(n,k);
m:=0;
sum:=0;
for i:=1 to n do
begin
read(t[i]);
sum:=sum+t[i];
if t[i]>m then m:=t[i];
end;
close(input);
max:=sum;
min:=max div k;
if min<m then min:=m;
while min<max do
begin
x:=(min+max) div 2;
sum:=0;
tr:=0;
i:=1;
while (i<=n)and(tr<k) do
begin
if sum+t[i]<=x then sum:=sum+t[i]
else
begin
tr:=tr+1;
sum:=t[i];
end;
i:=i+1;
end;
tr:=tr+1;
if tr>k then min:=min+1
else max:=x;
end;
assign(output,'transport.out');
rewrite(output);
write(min);
close(output);
end.