Pagini recente » Cod sursa (job #1524357) | Cod sursa (job #62772) | Cod sursa (job #2156503) | Cod sursa (job #1153366) | Cod sursa (job #1467301)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int i, j, g, w, eg[1001], cg[1001];
int c[1001][5001], maxim, s;
int main()
{
fin >> g >> w;
for (i = 1; i <= g; i++)
{
fin >> eg[i] >> cg[i];
s += cg[i];
}
for (i = 1; i <= g; i++)
for (j = 1; j <= s; j++)
{
c[i][j] = c[i-1][j];
if (cg[i] <= j) c[i][j] = max(c[i-1][j], c[i-1][j-cg[i]] + eg[i]);
maxim = max(maxim, c[i][j]);
}
s = min(s, 5000);
for (i = s; c[g][i-1] >= w; i--);
fout << ((c[g][i] >= w) ? i : -1);
return 0;
}