Pagini recente » Cod sursa (job #242001) | Cod sursa (job #1655907) | Cod sursa (job #388875) | Cod sursa (job #2285342) | Cod sursa (job #1684593)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file_in ("rucsac.in");
ofstream file_out ("rucsac.out");
int nr, gMax, sol = 0;
int g[5001], p[5001], optim[10001];
int i, j;
// citirea datelor
file_in >> nr >> gMax;
for (i = 0; i < nr; i++) {
file_in >> g[i] >> p[i];
}
// Calcularea solutiei
for (i = 1; i <= gMax; i++) {
optim[i] = -1;
}
optim[0]= 0;
for (i = 0; i < nr; i++) {
for (j = gMax - g[i]; j >= 0; j--) {
if (optim[j] != -1 && optim[j] + p[i] > optim[j + g[i]]) {
optim[j + g[i]] = optim[j] + p[i];
if (optim[j + g[i]] > sol) {
sol = optim[j + g[i]];
}
}
}
}
// Afisarea solutiei
file_out << sol;
return 0;
}