Pagini recente » Cod sursa (job #906695) | Cod sursa (job #2243065) | Cod sursa (job #1737490) | Cod sursa (job #2674563) | Cod sursa (job #2510054)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int n, g, i, j, sol;
int greutate[5005], profit[5005], d[10005];
int main(){
fin >> n >> g;
for (i=1; i<=n; i++){
fin >> greutate[i] >> profit[i];
}
d[0] = 1;
for (i=1; i<=n; i++){
for (j=g; j>=0; j--){
if (j + greutate[i] <= g && d[j] != 0){
d[j + greutate[i]] = max (d[j + greutate[i]], d[j] + profit[i]);
}
}
}
for (i=1; i<=g; i++){
sol = max (sol, d[i]);
}
fout << sol - 1;
return 0;
}