Pagini recente » Cod sursa (job #777872) | Cod sursa (job #904262) | Cod sursa (job #1008604) | Istoria paginii runda/hlo_cj_av_l3/clasament | Cod sursa (job #2514848)
#include <bits/stdc++.h>
using namespace std;
int n, g;
int w[5010], p[5010];
int sol[2][10010];
int main() {
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int row = 1;
cin >> n >> g;
for (int i = 1; i <= n; i++)
cin >> w[i] >> p[i];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= g; j++) {
if (j >= w[i])
sol[row][j] = max(sol[!row][j-w[i]]+p[i], sol[!row][j]);
else
sol[row][j] = sol[!row][j];
}
row = !row;
}
// for (int i = 0; i < n; i++) {
// for (int j = 1; j <= g; j++) {
// cout << sol[i][j] << "\t";
// // sol[i][j] = max(sol[i-1][j-w[i]]+p[i], sol[i][j-1]);
// }
// cout << endl;
// }
cout << sol[!row][g];
return 0;
}