Cod sursa(job #155031)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 11 martie 2008 17:54:38
Problema Transport Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.58 kb
var n,k,i,a,max,s,b,d,c:longint;
v:array[1..17000] of longint;
f,g:text;
begin
assign(f,'transport.in');reset(f);
assign(g,'transport.out');rewrite(g);
read(f,n,k);
max:=0;
for i:=1 to n do begin
read(f,v[i]);
if max<v[i] then max:=v[i];
s:=s+v[i];
end;
a:=1;
b:=s;
while b-a>1 do begin
c:=(a+b) div 2+(a+b) mod 2;
s:=0;
d:=1;
for i:=1 to n do s:=s+v[i];
if s>c then begin
inc(d);
s:=v[i];
end;
if (d>k) or (c<max) then a:=(a+b) div 2+(a+b) mod 2
                    else b:=(a+b) div 2+(a+b) mod 2;
end;
writeln(g,(a+b) div 2+(a+b) mod 2);
close(f);
close(g);
end.