Cod sursa(job #442584)

Utilizator ursu-valiJerdea Florin ursu-vali Data 14 aprilie 2010 20:33:28
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
long v[2000000];
long c,e,w,g,q;
void solve()
{
	long i,j;
	scanf("%ld",&g);
	scanf("%ld",&w);
	for(i=1;i<=w;i++)
		v[i]=-1;
	for(i=1;i<=g;i++)
	{
		scanf("%ld%ld",&e,&c);
		for(j=w;j>=e+1;j--)
			if(v[j-e]!=-1)
				if ((v[j]==-1) || (v[j-e]+c<v[j]))
					v[j]=v[j-e]+c; 
		for(j=e;j>=0;j--)
			if ((v[j]==-1) || (c<v[j])) 
				v[j]=c;
		/*for(q=1;q<=w;q++)
			printf("%ld ",v[q]);
		printf("\n");*/
	}		
	printf("%ld\n",v[w]);
}
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	solve();
	fclose(stdin);
	fclose(stdout);
	return 0;
}