Cod sursa(job #301253)

Utilizator drag0s93Mandu Dragos drag0s93 Data 8 aprilie 2009 01:33:31
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<stdlib.h>

#define IN "energii.in","r",stdin
#define OUT "energii.out","w",stdout
struct pct{
	int e , c ;
};
int N , S ;
pct V[1005];
int A[5006];
int main()
{
	freopen(IN);
	freopen(OUT);
	scanf("%d%d",&N,&S);
	for(int i = 1 ; i <= N ; ++i)	scanf("%d%d",&V[i].e,&V[i].c);
	for(int i = 1 ; i <= N ; ++i)
	{
		if(A[V[i].e] == 0 || A[V[i].e] > V[i].c)	A[V[i].e] = V[i].c;
		for(int j = 1 ; j <= S - V[i].e ; ++j)
			if(A[j])
				if(A[j + V[i].e] > A[j] + V[i].c || A[V[i].e + j] == 0)	A[V[i].e + j] = A[j] + V[i].c;
	}
	printf("%d\n",A[S]);
	return 0;
}