Cod sursa(job #317956)

Utilizator funkydvdIancu David Traian funkydvd Data 26 mai 2009 09:47:45
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream.h>
#define N 16001
//using namespace std;
ifstream f1 ("transport.in");
ofstream f2 ("transport.out");
int v[N],n,k,f;
int valid (int c)
{
 int nr=1, suma=0;
 f=1;
 for (int i=1; i<=n; i++)
 {
  suma+=v[i];
  if (suma>c) {nr++; suma=v[i];}
  if (nr>k) return 0;
 }
 return (nr<=k);
}
int main ()
{int t,i,st,dr,k2;
 f1>>n>>k;
 t=0;
 for (i=1 ;i<=n;i++)
 {f1>>v[i];
  t+=v[i];
 }
 st=1;
 dr=t;
 while (st<=dr)
 {
   k2=(st+dr)/2;
   if (valid(k2))  dr=k2-1;
    else st=k2+1;
 }
 f2<<st;
 return 0;
}