Pagini recente » Cod sursa (job #1456287) | Cod sursa (job #467342) | Cod sursa (job #1219402) | Cod sursa (job #2417199) | Cod sursa (job #2761067)
#include <bits/stdc++.h>
using namespace std;
int n, w;
struct elem{
int e,c;
}v[1003];
long long dp[1003][5003];
int main() {
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d", &n, &w);
for (int i = 1; i <= n; i++) {
scanf("%d %d",&v[i].e,&v[i].c);
}
for(int i=0;i<=n;i++){
for(int j=1;j<=w;j++)
dp[i][j] = INT_MAX;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= w; j++) {
int poz = j-v[i].e;
if(poz < 0)poz = 0;
dp[i][j] = min(dp[i-1][j],dp[i-1][poz] + v[i].c );
}
}
if(dp[n][w] == INT_MAX)printf("-1");
else printf("%lli\n",dp[n][w] );
return 0;
}