Cod sursa(job #377377)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 24 decembrie 2009 12:22:23
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <stdio.h>

long v[10000001],g,w,i,j,e,c;

int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	scanf("%ld%ld",&g,&w);
	for (i=1;i<g+1;i++)
	{
		scanf("%ld%ld",&e,&c);
		for (j=w;j>0;j--)
		{
			if ((v[j]!=0)&&((v[e+j]==0)||(v[e+j]>v[j]+c)))
				if (e+j<=w) v[e+j]=v[j]+c;
				else if ((v[w]>v[j]+c)||(v[w]==0)) v[w]=v[j]+c;
		}
		if ((c<v[e])||(v[e]==0)) v[e]=c;
	}
	if (v[w]==0) v[w]=-1;
	printf("%ld",v[w]);
	return 0;
}