Pagini recente » Monitorul de evaluare | Cod sursa (job #1368856) | Cod sursa (job #1582253) | Cod sursa (job #2730303) | Cod sursa (job #3317416)
#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<=w; j++)
dp[0][j] = 1e9; // infinit
dp[0][0] = 0;
for(int i=1; i<=g; i++) {
for(int j=0; j<=w; 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);
}
}
if(dp[g][w] >= 1e9) fout << -1;
else fout << dp[g][w];
return 0;
}