Pagini recente » Cod sursa (job #2931564) | Cod sursa (job #1533206) | Cod sursa (job #2394106) | Cod sursa (job #258465) | Cod sursa (job #2771791)
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n, G, w[5001], p[5001], i, f[1000000], j, sol;
int main () {
cin>>n>>G;
for (i = 1;i <= n;i++) {
cin>>w[i]>>p[i];
}
for (i = 1;i <= n;i++) {
for (j = G;j >= 1;j--)
if (f[j] != 0) { /// obtinusem suma j
if (j + w[i] <= G && f[j + w[i]] < f[j] + p[i])
f[j + w[i]] = f[j] + p[i];
}
if (w[i] <= G && p[i] > f[w[i]])
f[w[i]] = p[i];
}
for (i = 1;i <= G;i++)
sol = max(sol, f[i]);
cout<<sol;
}