Pagini recente » Cod sursa (job #2974828) | Cod sursa (job #2258139) | Cod sursa (job #2401004) | Cod sursa (job #2392182) | Cod sursa (job #2949852)
#include <bits/stdc++.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
const int gMax = 5001;
const int nMax = 1e5 + 1;
int W[nMax];
int P[nMax];
int C[gMax];
int main()
{
int n, GMAX;
f >> n >> GMAX;
for (int i = 1; i <= n; ++i) {
f >> W[i] >> P[i];
}
/// C[x] inseamna ca am o multime de obiecte a caror greutate e x si genereaza profitul C[x]
C[0] = 0;
int sol = 0;
for (int i = 1; i <= n - 1; ++i) {
for (int j = GMAX - W[i]; j >= 0; --j) {
if(C[j + W[i]] < C[j] + P[i]) {
C[j + W[i]] = C[j] + P[i];
sol = max(sol, C[j + W[i]]);
}
}
}
g << sol;
return 0;
}