Pagini recente » Cod sursa (job #2677447) | Cod sursa (job #2640565) | Cod sursa (job #1044805) | Cod sursa (job #1044825) | Cod sursa (job #1574042)
#include <fstream>
#define D 1003
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int sol, e[D], c[D], dp[D][5005], G, W;
int main()
{
f >> G >> W;
bool ok = 0;
sol = 1000000000000;
int l = 0;
for (int i = 1; i <= G; i++)
f >> e[i] >> c[i];
for (int i = 1; i <= G; i++){
l = 1 - l;
for (int j = 0; j <= 5005; j++){
dp[i][j] = dp[i - 1][j];
if (c[i] <= j)
dp[i][j] = max(dp[i][j], dp[i - 1][j - c[i]] + e[i]);
if (dp[i][j] >= W && j < sol)
sol = j;
}
}
if (sol != 1000000000000) g << sol;
else g << "-1";
return 0;
}