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