Pagini recente » Cod sursa (job #2516568) | Cod sursa (job #1283062) | Monitorul de evaluare | Cod sursa (job #1026589) | Cod sursa (job #1002955)
#include <iostream>
#include <fstream>
#include <climits>
#include <string.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int main() {
int n , w_max;
f >> n >> w_max;
int w[n + 1], p[n + 1];
for (int i = 0; i < n; i++) {
f >> w[i] >> p[i];
}
int best[w_max + 1];
memset(best, 0, (w_max + 1) * sizeof(int));
for (int i = 0; i < n; i++) {
for (int j = w_max; j >= 1; j--) {
best[j] = max(
best[j],
j - w[i] < 0 ? 0 : best[j - w[i]] + p[i]
);
}
}
g << best[w_max];
}