Pagini recente » Cod sursa (job #1380042) | Cod sursa (job #1899616) | Cod sursa (job #1914140) | Cod sursa (job #2288625) | Cod sursa (job #3317421)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct generator {
int en;
int ct;
};
generator v[1002];
int dp[1002][5002];
int main() {
int g, W;
fin >> g >> W;
for(int i = 1; i <= g; i++)
fin >> v[i].en >> v[i].ct;
// initializare dp
for(int j = 0; j <= 5000; j++) dp[0][j] = 1e9;
dp[0][0] = 0;
for(int i = 1; i <= g; i++) {
for(int j = 0; j <= 5000; j++) {
dp[i][j] = dp[i-1][j]; // nu luam generatorul i
if(j >= v[i].en)
dp[i][j] = min(dp[i][j], dp[i-1][j - v[i].en] + v[i].ct);
}
}
int ans = 1e9;
for(int j = W; j <= 5000; j++)
ans = min(ans, dp[g][j]);
if(ans >= 1e9) fout << -1;
else fout << ans;
return 0;
}