Cod sursa(job #235109)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 22 decembrie 2008 21:35:33
Problema Transport Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
    const max=256000000;  
   var f,g: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);  
   mij:=0;  
   read(f,n,k);  
   for i:=1 to n do  
     begin  
     read(f,a[i]);  
     if a[i]>mij then mij:=a[i];  
     end;  
   close(f);  
   k1:=mij-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(g,'transport.out');  
  rewrite(g);  
   writeln(g,k1+1);  
   close(g);  
   end.