Pagini recente » Cod sursa (job #1190987) | Cod sursa (job #204046) | Cod sursa (job #516168) | Cod sursa (job #2985012) | Cod sursa (job #3355285)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main() {
int n, g;
fin>>n>>g;
vector<int> w(n+1), p(n+1);
for(int i=1;i<=n;i++) {
int a,b;
fin>>a>>b;
w[i] = a;
p[i] = b;
}
vector<vector<int>> dp(2, vector<int>(g+1,0));
for(int i=1;i<=n;i++) {
for(int cap=0; cap<=g; cap++) {
dp[i%2][cap] = dp[abs(i%2-1)][cap];
if(cap - w[i%2] >= 0) {
dp[i%2][cap] = max(dp[i%2][cap], dp[abs(i%2-1)][cap-w[i]] + p[i]);
}
}
}
fout<<dp[n%2][g]<<endl;
return 0;
}