Cod sursa(job #50303)

Utilizator fogabFodor Gabor fogab Data 7 aprilie 2007 14:07:06
Problema Transport Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.65 kb
const max=256000000;
var f:text;
    a:array[1..16000] of integer;
    n,i,k:word;
    k1,k2,mij:longint;

function ok(t:longint):boolean;
var i,u:integer;
    c:longint;
begin
  u:=1;
  c:=0;
  for i:=1 to n do
    if c+a[i]>t then begin inc(u);c:=a[i];end
       else c:=c+a[i];
  if u>k then ok:=false
     else ok:=true;
end;

begin
assign(f,'transport.in');
reset(f);
read(f,n,k);
for i:=1 to n do
  read(f,a[i]);
close(f);
k1:=a[1];
k2:=max;
while k2-k1>1 do
  begin
    mij:=(k1+k2) shr 1;
    if ok(mij) then k2:=mij
       else k1:=mij;
  end;
assign(f,'transport.out');
rewrite(f);
writeln(f,k1+1);
close(f);
end.