Cod sursa(job #625922)

Utilizator GrimpowRadu Andrei Grimpow Data 25 octombrie 2011 20:59:17
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <stdio.h>

int n,k,a[17000],sol;

int test()
{
	int i,j,t;
	for(t=i=1,j=0;i<=n;i++)
	{
		if(j+a[i]>sol)
			j=0,i--,t++;
		else
			j+=a[i];
		if(t>k)
			return(0);
	}
	return(1);
}

int main()
{
	FILE *f=fopen("transport.in","r"),*g=fopen("transport.out","w");
	fscanf(f,"%d %d",&n,&k);
	int i;
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&a[i]);
	fclose(f);

	for(sol=0,i=29;i>=0;i--)
	{
		sol+=i*2;
		if(test())
			sol-=i*2;
	}
	fprintf(g,"%d\n",sol+1);
	fclose(g);
	return(0);
}