Pagini recente » Cod sursa (job #1865290) | Cod sursa (job #927953) | Cod sursa (job #3144377) | Cod sursa (job #212388) | Cod sursa (job #609781)
Cod sursa(job #609781)
Program transport;
var i,n,k,max,s,mid:longint;
a:array [1..16000] of integer;
fi,fo:text;
function control(p:longint):boolean;
var i,j,s:longint;
begin
s:=0; j:=0;
control:=false;
for i:=1 to n do
if s+a[i]<=mid then s:=s+a[i]
else begin
s:=a[i];
inc(j);
end;
if j<k then control:=true
else control:=false;
end;
begin
assign(fi,'transport.in');
reset(fi);
assign(fo,'transport.out');
rewrite(fo);
readln(fi,n,k);
for i:=1 to n do begin
readln(fi,a[i]);
s:=s+a[i];
if a[i]>max then max:=a[i];
end;
repeat
mid:=(max+s) div 2;
if control(mid) then s:=mid
else max:=mid+1;
until max=s;
write(fo,max);
close(fo);
end.