Pagini recente » Cod sursa (job #1319449) | Utilizatori inregistrati la Junior Challenge 2016 Runda 1 | Cod sursa (job #2248516) | Istoria paginii runda/becreative11/clasament | Cod sursa (job #1355103)
#include <iostream>
#include <fstream>
#define nmax 5005
#define gmax 10005
using namespace std;
struct object {
int weight, profit;
} O[nmax];
int Curr[gmax], Prev[gmax];
int main() {
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int N, G;
fi >> N >> G;
for (int i = 1; i <= N; i++)
fi >> O[i].weight >> O[i].profit;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= G; j++) {
if (j >= O[i].weight)
Curr[j] = max(Prev[j], O[i].profit + Prev[j - O[i].weight]);
else
Curr[j] = Prev[j];
}
if (i < N)
for (int j = 1; j <= G; j++) Prev[j] = Curr[j];
}
fo << Curr[G] << "\n";
fi.close();
fo.close();
return 0;
}