Cod sursa(job #340907)

Utilizator LuffyBanu Lavinia Luffy Data 16 august 2009 22:31:23
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#define dim 16001
using namespace std;
int n,k,v[dim],mij,i,maxx=0,suma=0,rez;;
int sum(int a)
{int i,suma=0,trans=0;
  for(i=1;i<=n;i++)
	{if(suma+v[i]<=a) suma+=v[i];
     else {suma=v[i]; trans++;}}
trans++;
return trans;}

 int caut(int li, int ls)
{int x;
mij=(li+ls)/2;
   while(li<ls)
   {x=sum(mij);
	if(x>k) li=mij+1;
     else ls=mij;
    mij=(li+ls)/2;
  }
  return 0;
 }
 
 
int main()
{
FILE *f=fopen("transport.in","r"), *g=fopen("transport.out","w");
fscanf(f,"%d%d",&n,&k);
  for(i=1;i<=n;i++)
	  {fscanf(f,"%d",&v[i]);
        suma+=v[i];
		if(v[i]>maxx) maxx=v[i];}

	caut(maxx,suma);
	  fprintf(g,"%d\n",mij);
fclose(f);
fclose(g);
return 0;
}