Pagini recente » Borderou de evaluare (job #1235746) | Borderou de evaluare (job #1549945) | Cod sursa (job #1542941)
#include <fstream>
#include <algorithm>
#define obiect pair<int, int>
#define w first
#define p second
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int N, G, i, j, Pmax[10010];
obiect ob[5010];
int main()
{
i = 1;
f >> N >> G;
while (f >> i >> j)
{
ob[i] = make_pair(i, j);
++i;
}
for (i = 1; i <= N; ++i)
for (int x = G - ob[i].w; x >= 0; --x)
Pmax[x + ob[i].w] = max(Pmax[ob[i].w + x], Pmax[x] + ob[i].p);
g << Pmax[G];
return 0;
}