Cod sursa(job #782748)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 29 august 2012 16:44:39
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
FILE *f=fopen ("transport.in","r");
FILE *g=fopen ("transport.out","w");
long n,c,max,t,i,total,app,s,k,v[16001];
int main()
{
	fscanf(f,"%ld%ld",&n,&k);
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%ld",&v[i]);
		s=s+v[i];
		if (v[i]>max)
			max=v[i];
	}
	app=s%k;
	if (app<max)
		app=max;
	total=app;
	for (i=1;i<=n;i++)
	{
		if (t+v[i]<=app)
			t=t+v[i];
		else
			if (t+(v[i]/2)<=app)
			{
				t=t+v[i];
				if (t>total)
					total=t;
				t=0;
			}
			else
			{
				if (t>total)
					total=t;
				t=v[i];
			}
	}
	fprintf(g,"%ld",total);
	fclose(f);
	return 0;
}