Cod sursa(job #152566)

Utilizator alexeiIacob Radu alexei Data 9 martie 2008 15:58:17
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define nmax 10002
#define nmic 1001
#define min(a,b) ((a)<(b)?(a):(b))
#define INF 100000000
int a[nmic],c[nmic];
int sol[nmax];
int main()
{
	freopen("energii.in","r",stdin);
	freopen("energii.out","w",stdout);
	int n,k,i,j,aux;
	scanf("%d%d",&n,&k);
	for(i=1; i<=n; ++i)
		scanf("%d%d",&a[i],&c[i]);
    sol[0]=1; 
	for(i=0;i<=k;++i)
		sol[i]=INF;
	sol[0]=0;
	//int minp=0;
	for(j=1; j<=n; ++j){ 
		/*
		if( a[j]> k)
			if( !minp || minp>c[j])   
				minp=c[j];
		*/
		for(i=k-a[j]; i>=0; --i){
			aux=min(k,i+a[j]);
			sol[aux]=min(sol[aux],sol[i]+c[j]);
		}
	} 
	printf("%d\n",sol[k]!=INF?sol[k]:-1);   
    return 0;
}