Cod sursa(job #122334)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 11 ianuarie 2008 20:39:03
Problema Transport Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.75 kb
var v:array[1..16009]of longint;
    c,n,i,k,s,a,b,u,m:longint;
    f:text;
begin
   assign(f,'transport.in');
   reset(f);
   read(f,n,k);
   for i:=1 to n do
   begin
   read(f,v[i]);
   if m<v[i] then m:=v[i];
   s:=s+v[i];
   end;
   close(f);
   assign(f,'transport.out');
   rewrite(f);
   {if n>1 then begin} a:=1;
   b:=s;
   while b-a>1 do
   begin
   c:=(b+a)div 2+(b+a)mod 2;
   s:=0;
   u:=1;
   for i:=1 to n do
   begin
   s:=s+v[i];
   if s>c then begin u:=u+1;
                     s:=v[i];
               end;
   end;
   if(u>k)or(c<m)then a:=(b+a)div 2+(b+a)mod 2
                 else b:=(b+a)div 2+(b+a)mod 2;
   end;
   writeln(f,(b+a)div 2+(b+a)mod 2);
   {end
   else writeln(f,v[1]); }
   close(f);
end.