Pagini recente » Cod sursa (job #130036) | Cod sursa (job #1542222) | Cod sursa (job #264235) | Cod sursa (job #347055) | Cod sursa (job #3002275)
#include <fstream>
#include <set>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
const int MAX = 1e4 + 1;
int dp[MAX] , n , g , w , p;
set<int,greater<int>>s;
int main(){
cin >> n >> g;
s.insert(0);
for(int i = 1 ; i <= n ; i++){
cin >> w >> p;
for(auto it : s){
if(it + w <= g){
dp[it+w] = max(dp[it+w],dp[it]+p);
s.insert(it+w);
}
}
}
cout << dp[g];
return 0;
}