Pagini recente » Cod sursa (job #3161370) | Cod sursa (job #2747735) | Cod sursa (job #2719012) | Cod sursa (job #2109118) | Cod sursa (job #1071549)
#include <cstdio>
#include <climits>
#include <algorithm>
using namespace std;
#define GMax 1001
#define WMax 5001
int G, W;
int cost[GMax][WMax];
int eg[GMax], ec[GMax];
int dp(){
for(int w = 0; w <= W; ++w)
cost[0][w] = INT_MAX/2;
for(int i = 1; i <= G; ++i)
for(int w = 0; w <= W; ++w){
if(w >= eg[i])
cost[i][w] = min(cost[i-1][w], cost[i-1][w-eg[i]] + ec[i]);
else
cost[i][w] = min(cost[i-1][w], ec[i]);
}
}
int main(){
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d %d", &G, &W);
for(int i = 1; i <= G; ++i){
scanf("%d %d", &eg[i], &ec[i]);
}
dp();
printf("%d", cost[G][W]);
fclose(stdin);
fclose(stdout);
return 0;
}