Pagini recente » Monitorul de evaluare | Cod sursa (job #1573840) | Cod sursa (job #686095) | Cod sursa (job #211318) | Cod sursa (job #154964)
Cod sursa(job #154964)
var n,k,i,nr,s,max,ls,ld,m,min,a:longint;
v:array[1..16000] of integer;
f,g:text;
begin
assign(f,'transport.in');reset(f);
assign(g,'transport.out');rewrite(g);
read(f,n,k);
min:=0;
max:=0;
for i:=1 to n do begin
read(f,v[i]);
if min<v[i] then min:=v[i];
max:=max+v[i];
end;
ls:=min;
ld:=max;
while ls<=ld do begin
m:=(ls+ld) div 2;
nr:=0;
s:=0;
for i:=1 to n do s:=s+v[i];
if s>m then begin
s:=0;
inc(nr);
dec(i);
end;
if nr<=k then ld:=m-1
else ls:=m+1;
a:=m;
end;
writeln(g,a);
close(f);
close(g);
end.