Pagini recente » Cod sursa (job #2840665) | Cod sursa (job #1298202) | Cod sursa (job #1871348) | Cod sursa (job #1571692) | Cod sursa (job #2338045)
#include <cstdio>
#include <algorithm>
#define GMAX 1005
#define NMAX 5005
using namespace std;
int dp[GMAX][NMAX];
int e[GMAX];
int c[GMAX];
int main() {
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int i,j,n,W;
scanf("%d%d",&n,&W);
for( i = 1; i <= n; i ++ )
scanf("%d%d",&e[i],&c[i]);
for( i = 0; i <= n; i ++ )
for( j = 0; j <= W; j ++ )
dp[i][j] = NMAX * GMAX * 100;
for( i = 1; i <= n; i ++ ) {
for( j = 1; j <= W; j ++ ) {
if( j - e[i] <= 0 )
dp[i][j] = min(dp[i-1][j],c[i]);
else
dp[i][j] = min( dp[i-1][j], dp[i][j-e[i]] + c[i] );
}
}
if( dp[n][W] == NMAX * GMAX * 100 )
printf("-1");
else
printf("%d",dp[n][W]);
return 0;
}