Cod sursa(job #131216)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 3 februarie 2008 13:44:58
Problema Transport Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#include <fstream.h>
int a[16010],n,kk;
int nr=0;
long S,max=0;
void citire()
{
   ifstream fin("transport.in");
   fin>>n>>kk;
  for (int i=0;i<n;i++)
  {  fin>>a[i];
     S+=a[i];
     max=max>a[i]?max:a[i];
  }
  fin.close();
}

long parc ()
{
  S/=kk;
  if (S>max)
     max=S;
  for (long i=max;;i++){
      int k=0,aux=0,S=0;
      while (k<n)
      {
	 while (S+a[k]<=i && k<n)
	 {
	       S+=a[k++];
	 }
	 S=0;
	 aux++;
	 if (aux>kk)
	    break;
      }
  if (aux<=kk)
      return i;
  }
}

int main ()
{
  citire();
  freopen ("transport.out","w",stdout);
  printf("%ld\n",parc());
  fclose(stdout);
  return 0;
}