Cod sursa(job #1663173)

Utilizator laura.calimanLaura Caliman laura.caliman Data 25 martie 2016 16:38:07
Problema Transport Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 kb
var n,k,i,j,m,s,t,r,max:longint;
    a:array[1..16000] of longint;
    
begin
  assign(input,'transport.in');
  assign(output,'transport.out');
  reset(input);
  rewrite(output);
  read(n,k);
  s:=0;
  for i:=1 to n do begin
    read(a[i]);
    s:=s+a[i];
  end;
  r:=1;
  while r<s do begin
    m:=(r+s) div 2;
//    writeln(r,' ',m,' ',s);
    t:=1;
    j:=0;
    max:=0;
    for i:=1 to n do begin
      if j+a[i]<=m then begin
        j:=j+a[i];
      end else begin
        inc(t);
        j:=a[i];
      end;
      if max<j then max:=j;
    end;
    if t<=k then s:=m
      else r:=m+1;
    if (t=k) and (j=max) then begin
      r:=m;
      s:=m;
    end;
  end;
  write(m);
end.