Cod sursa(job #26787)

Utilizator marius135Dumitran Adrian Marius marius135 Data 5 martie 2007 21:22:16
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>


int main()
{
	freopen("energii.in","rt",stdin);
	freopen("energii.out","wt",stdout);
	long n,m,i,nr,max = 2000000000;
	long v[15001],c[1001],x[1001];
	scanf("%ld%ld",&n,&m);
	for(i=1;i<=n;i++)
		scanf("%ld%ld",&x[i],&c[i]);
	
	for(i=1;i<=m+10001;i++)
		v[i] = 2000000000;
	
	for( nr = 1; nr <= n; nr++)
		for( i = m; i >= 0  ; i--)
			if(v[i]<2000000000)
				{
				if(i+x[nr]>=m && v[i]+c[nr] <max) max=v[i]+c[nr];
				else
					if(v[i+x[nr]]>v[i]+c[nr]) 
						v[i+x[nr]] = v[i]+c[nr];
				}
			
	if(max<2000000000) printf("%ld",max);
	else printf("-1\n");
				
				
	return 0;
}