Pagini recente » Cod sursa (job #2458940) | Cod sursa (job #1139098) | Solutia problemei shoturi | Cod sursa (job #204577) | Cod sursa (job #1446626)
#include <fstream>
using namespace std;
struct obiect {
int g, p;
};
obiect a[5001];
int n, G, l, g, p, c, pn, lp, lc, mp[2][10001];
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");
int main() {
fi >> n >> G;
for (l = 1; l <= n; l++)
fi >> a[l].g >> a[l].p;
lp = 0; lc = 1;
for (l = 1; l <= n; l++) {
for (c = 1; c <= G; c++) {
if (a[l].g <= c) {
pn = a[l].p + mp[lp][c-a[l].g];
if (pn > mp[lp][c])
mp[lc][c] = pn;
else
mp[lc][c] = mp[lp][c];
}
else
mp[lc][c] = mp[lp][c];
}
lp = 1 - lp; lc = 1 - lc;
}
fo << mp[lp][G];
return 0;
}