Cod sursa(job #213762)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 11 octombrie 2008 14:20:46
Problema Transport Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.72 kb
var f,g:Text;
    v:array[0..16010]of integer;
    n,k,i,a,b,m,r:longint;

function verif:boolean;
var s,h:longint;
begin
  s:=0;
  h:=1;
  for i:=1 to n do
    if (s+v[i]<=m)then
      inc(s,v[i])else
      begin
        inc(h);
        s:=v[i];
      end;
  if (h<=k)then verif:=true else verif:=false;
end;

begin
assign(f,'transport.in');
assign(g,'transport.out');
reset(f);
rewrite(g);
read(f,n,k);
for i:=1 to n do
  begin
    read(f,v[i]);
    if (v[i]>a)then
      a:=v[i];
    inc(b,v[i]);
  end;
while (a<=b)do
  begin
    m:=a+(b-a)div 2;
    if verif then
      begin
        b:=m-1;
        r:=m;
      end else
        a:=m+1;
  end;
write(g,r);
close(f);
close(g);
end.