Pagini recente » Cod sursa (job #2623237) | Cod sursa (job #675888) | Cod sursa (job #3278828) | Cod sursa (job #64095) | Cod sursa (job #2202801)
#include <bits/stdc++.h>
using namespace std;
int n,g;
int profit[5005];
int greutate[5005];
int mx_profit[10005];
bitset<10005>ap;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d\n",&n,&g);
for(int i=1;i<=n;i++)
scanf("%d %d\n",&greutate[i],&profit[i]);
ap[0]=1;
for(int i=1;i<=n;i++)
{
for(int j=g;j>=greutate[i];j--)
{
if(ap[j-greutate[i]]==0)
continue;
ap[j]=1;
mx_profit[j]=max(mx_profit[j],profit[i]+mx_profit[j-greutate[i]]);
}
}
int mx=0;
for(int i=1;i<=g;i++)
if(mx<mx_profit[i])
mx=mx_profit[i];
printf("%d",mx);
return 0;
}