Pagini recente » Cod sursa (job #1830090) | Cod sursa (job #2671153) | Cod sursa (job #1619216) | Cod sursa (job #1829896) | Cod sursa (job #2824566)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n, g, wt[5001], val[5001], dp[10001], aux;
int main(){
in >> n >> g;
for (int i = 0; i < n; i++) {
in >> wt[i] >> val[i];
if (wt[i] == 0) {
aux += val[i];
}
else {
for (int w = g - wt[i]; w >= 0; w--) {
dp[w + wt[i]] = max(dp[w + wt[i]], dp[w] + val[i]);
}
}
}
out << dp[g] + aux;
return 0;
}