Pagini recente » Cod sursa (job #347703) | Cod sursa (job #2853601) | Cod sursa (job #1196205) | Cod sursa (job #123286) | Cod sursa (job #593765)
Cod sursa(job #593765)
#include <cstdio>
#define MAXN 1010
#define MAXW 5010
#define INF 1<<30
int main(){
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int E[MAXN], C[MAXN];
static int R[MAXN][MAXW];
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=1; i<=W; i++)
R[0][i]=INF;
for(i=1; i<=N; i++){
for(j=1; j<=W; j++){
if(E[i]<=j){
if(C[i]+R[i-1][j-E[i]] < R[i-1][j])
R[i][j]=C[i]+R[i-1][j-E[i]];
else
R[i][j]=R[i-1][j];
}
else if(C[i] < R[i-1][j])
R[i][j]=C[i];
else
R[i][j]=R[i-1][j];
}
}
printf("%d\n", (R[N][W]!=INF)? R[N][W]: -1);
return 0;
}