Cod sursa(job #1453262)

Utilizator ianic1999Ianic Umanschii ianic1999 Data 23 iunie 2015 10:02:10
Problema Transport Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 kb
var t:array[1..16000]of integer;
    n,m,min,max,i,j,k,x,sum,tr:longint;
    ok:boolean;
begin
 assign(input,'transport.in');
 reset(input);
  readln(n,k);
   sum:=0;
  for i:=1 to n do
   begin
    readln(t[i]);
    sum:=sum+t[i];
   end;
 close(input);

  max:=sum;
  min:=sum div k;
  ok:=true;
   while min<>max do
    begin
     x:=(min+max) div 2;
     tr:=0;
     sum:=0;
     i:=1;
     while i<=n do
      begin
       if sum+t[i]<=x then
                       begin
                        sum:=sum+t[i]
                       end
                        else
                         begin
                          tr:=tr+1;
                          sum:=t[i];
                         end;
       i:=i+1;
      end;
      tr:=tr+1;
     if tr>k then min:=min+1
             else max:=x-1;

    end;

 assign(output,'transport.out');
 rewrite(output);
  write(min);
 close(output);
end.