Cod sursa(job #1453281)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 23 iunie 2015 10:19:41
Problema Transport Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.77 kb
type tablou=array [1..16000]of integer;
var t:tablou;
    i,j,k,m,n,x,y:longint;
    p,q,suma,max1,max:qword;
    f,g:text;
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,t[i]);
 suma:=suma+t[i];
 end;
p:=round(suma/k);
q:=suma;
suma:=0;
max:=16000;
while p<=q do
 begin
  m:=p+(q-p)div 2;
  i:=1;
  x:=0;
  suma:=m;
  while i<=n do
     if suma>=t[i] then begin
                        suma:=suma-t[i];
                        i:=i+1;
                        end
     else begin
              suma:=m;
              x:=x+1;
              end;
  x:=x+1;
  if (x=k)and(m<max) then max:=m;
  if x>k then p:=m+1
   else q:=m-1;
 end;
write(g,max);
close(f);
close(g);
end.