Pagini recente » Cod sursa (job #1203273) | Cod sursa (job #1434938) | Cod sursa (job #1690297) | Cod sursa (job #2525354) | Cod sursa (job #1734647)
#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;
}