Cod sursa(job #252598)

Utilizator me_andyAvramescu Andrei me_andy Data 4 februarie 2009 17:24:58
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream.h>


 ifstream f("trans.in");
 ofstream g("trans.out");

  int st,dr,i,v[16001],n,k,sol;


int gr(int x)
{
  int i,j=1,s=0;
  for(i=1;i<=n;i++)
  {
   if(s+v[i]<=x) s+=v[i];
    else s=v[i],j++;
  }
  return j;
}


int main()
{ int aux,suma=0,max=0;
 f>>n>>k;
 for(i=1;i<=n;i++)
 {
  f>>v[i];
  if(v[i]>max) max=v[i];
  suma+=v[i];
 }
 st=max;
 dr=suma;
 while(st<=dr)
 {
  aux=st+(dr-st)/2;
  if(gr(aux)<=k) sol=aux,dr=aux-1;
  else st=aux+1;
 }
  g<<sol;

 return 0;

}