Cod sursa(job #281469)

Utilizator DjSefuWrong name DjSefu Data 14 martie 2009 22:55:48
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
std::ifstream f("transport.in");
std::ofstream g("transport.out");
#define NMAX 16500
int n,k,b,a[NMAX],i,j,step;
int test(int v)
{ int i=1,m=0,s=0;
  while(i<=n) { s+=a[i];
                if(s>v) ++m,s=a[i];
                ++i;
                }
  if(s>0) ++m;
  return m;
}
int main()
{ f>>n>>k;
  for(i=1;i<=n;++i) f>>a[i];
  for(step=1;step<=16500;step<<=1);
  for(i=0;step;step>>=1) 
                         { j=test(i+step);
                           if(j>k) 
                                            i+=step;
                           else if(j==k) { g<<i+step<<"\n";
                                           f.close();
                                           g.close();
                                           return 0;
                                           }
                                           }                
  g<<i<<"\n"; 
  f.close();
  g.close();
  return 0;
}