Cod sursa(job #1734647)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 27 iulie 2016 21:40:51
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#define INF 0x3f3f3f3f
#define NMAX 5005

using namespace std;

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

int e[NMAX],c[NMAX],dp[NMAX];

int main() {
	int n,i,j,w;

	fin>>n>>w;

	for(i=0;i<n;++i) fin>>e[i]>>c[i];
	memset(dp,INF,sizeof(dp));
	dp[0]=0;
	for(i=0;i<n;++i) {
		for(j=w;j>=e[i];--j)
			if(dp[j-e[i]]!=INF) dp[j]=min(dp[j],dp[j-e[i]]+c[i]);
		if(e[i]>w) dp[w]=min(dp[w],c[i]);
	}

	fout<<((dp[w]==INF)?-1:dp[w]);

	return 0;
}