Pagini recente » Cod sursa (job #2989806) | Cod sursa (job #1631058) | Cod sursa (job #814607) | Cod sursa (job #2505331) | Cod sursa (job #2044633)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int matrix[2][10005];
int g[10005], p[10005];
int length, gMax;
int main() {
fin >> length >> gMax;
for (int iter = 0; iter < length; ++iter) {
fin >> g[iter] >> p[iter];
}
for (int l = 0; l < length; ++l) {
for (int c = 1; c <= gMax; ++c) {
int actualLine = l % 2, otherLine = 1 - actualLine;
matrix[actualLine][c] = matrix[otherLine][c];
if (g[l] <= c)
matrix[actualLine][c] = max(matrix[otherLine][c], matrix[otherLine][c - g[l]] + p[l]);
// cout<<matrix[actualLine][c]<<'\t';
}
// cout<<'\n';
}
// for (auto &l : matrix) {
// for (int c = 0; c <= gMax; ++c) {
// fout << l[c] << '\t';
// }
// fout << '\n';
// }
fout << matrix[1-length % 2][gMax];
return 0;
}