Pagini recente » Cod sursa (job #1127511) | Cod sursa (job #2719541) | Cod sursa (job #1142792) | Cod sursa (job #3267486) | Cod sursa (job #2989630)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, gmax, g[5001], v[5001], dp[100001], vmax;
int main(){
fin >> n >> gmax;
for(int i = 1; i <= n; i++)
fin >> g[i] >> v[i];
dp[0] = 1;
for(int i = 1; i <= n; i++){
for(int j = gmax - g[i]; j >= 0; j--){
if(dp[j] > 0){
if(dp[j + g[i]] == 0 || (dp[j + g[i]] != 0 && dp[j + g[i]] < dp[j] + v[i]))
dp[j + g[i]] = dp[j] + v[i];
vmax = max(vmax, dp[j + g[i]]);
}
}
}
fout << vmax - 1;
return 0;
}