Cod sursa(job #591582)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 24 mai 2011 20:36:15
Problema Transport Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.84 kb
var     a:array[1..16000] of longint;
        n,i,j,max,s,k,mijloc:longint;
        f,g:text;

function ok(p:longint):boolean;
var     i,t,sum:longint;
begin
  t:=1;
  sum:=a[1];
  for i:=2 to n do
    begin
      if sum+a[i]<=p then sum:=sum+a[i]
        else
          begin
            sum:=a[i];
            inc(t);
          end;
    end;
  if t<=k then ok:=true else ok:=false;
end;

begin
  assign(f,'transport.in');
  assign(g,'transport.out');
  reset(f);
  rewrite(g);
  readln(f,n,k);
  for i:=1 to n do
    readln(f,a[i]);
  max:=0;
  s:=0;
  for i:=1 to n do
    begin
      inc(s,a[i]);
      if a[i]>max then max:=a[i];
    end;
  while max<>s do
    begin
      mijloc:=(max+s) div 2;
      if ok(mijloc) then
        s:=mijloc else
        max:=mijloc+1;
    end;
  writeln(g,max);
  close(g);
end.