Cod sursa(job #611339)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 1 septembrie 2011 00:43:47
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

const int maxn=1005, maxw=5005, INF=2000000000;
int i,j,N,W;
int E[maxn],C[maxn];
int D[maxn][maxw];

int main() {
	fin >> N >> W;
	for(i=1;i<=N;i++)
		fin >> E[i] >> C[i];
	
	memset(D,INF,sizeof(D));
	for(i=0;i<=N;i++) D[i][0]=0;
	/*for(i=0;i<=N;i++)
		for(j=1;j<=W;j++)
			D[i][j]=INF;
	*/
	for(i=1;i<=N;i++)
		for(j=1;j<=W;j++) {
			if(E[i]<=j)
				D[i][j]=min(D[i-1][j], D[i-1][j-E[i]] + C[i]);
			else
				D[i][j]=min(D[i-1][j], C[i]);
		}
	
	if(D[N][W]==INF) fout << -1;
	else fout << D[N][W];
}