Pagini recente » Cod sursa (job #2190267) | Cod sursa (job #2793609) | Cod sursa (job #2636277) | Cod sursa (job #717553) | Cod sursa (job #2718517)
#include <fstream>
using namespace std;
int G, W;
int E[1001];
int C[1001];
int dp[1001][5001];
const int Inf = 2e9;
void read() {
int i;
ifstream f("energii.in");
f >> G >> W;
for (i = 1; i <= G; i++)
f >> E[i] >> C[i];
f.close();
}
void solve() {
int i, j;
for (i = 0; i <= G; i++)
for (j = 1; j <= W; j++)
dp[i][j] = Inf;
for (i = 1; i <= G; i++)
for (j = 1; j <= W; j++)
if (j - E[i] >= 0)
dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - E[i]] + C[i]);
else dp[i][j] = dp[i - 1][j];
}
void output() {
ofstream g("energii.out");
if (dp[G][W] == Inf)
g << -1;
else
g << dp[G][W];
g.close();
}
int main() {
read();
solve();
output();
return 0;
}