Pagini recente » Cod sursa (job #3170641) | Cod sursa (job #2158167) | Cod sursa (job #659168) | kk-kk | Cod sursa (job #2699339)
#include <fstream>
using namespace std;
const int INF = (int) 1e9;
int main() {
ifstream cin("energii.in");
ofstream cout("energii.out");
//dp[G+1][W+1] - costul minim pentru a genera o en. mai mare sau egala cu W folosind o submultime a primelor G elemente
int G, W;
cin >> G >> W;
int EG[G+1], CG[G+1], dp[G+1][W+1];
for(int i=1;i<=G;i++)
cin >> EG[i] >> CG[i];
dp[0][0] = 0;
for(int i=1;i<=W;i++)
dp[0][i] = INF;
for(int i=1;i<=G;i++) {
dp[i][0] = 0;
for(int j=1;j<=W;j++) {
dp[i][j] = dp[i-1][j];
if(j>=EG[i])
dp[i][j] = min(dp[i-1][j], dp[i-1][j-EG[i]]+CG[i]);
}
}
cout << dp[G][W] <<'\n';
return 0;
}