Pagini recente » Cod sursa (job #2744506) | Cod sursa (job #1394378) | Cod sursa (job #1161881) | Cod sursa (job #682513) | Cod sursa (job #2395801)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int dp[10010];
int val[5010];
int g[5010];
int main()
{
int n,G;
in>>n>>G;
for(int i=1;i<=n;i++){
in>>g[i]>>val[i];
for(int j=G-g[i];j>=0;j--){
if(dp[j]!=0 || j==0){
dp[j+g[i]]=max(dp[j+g[i]],dp[j]+val[i]);
}
}
}
int ans=0;
for(int i=G;i>=1;i--){
if(dp[i]!=0){
ans=max(ans,dp[i]);
}
}
out<<ans;
return 0;
}