Pagini recente » Cod sursa (job #2368390) | Cod sursa (job #2729014) | Cod sursa (job #1290669) | Cod sursa (job #1093174) | Cod sursa (job #1185852)
#include <cstdio>
#include <algorithm>
#define MAX 10005
#define MAXc 5005
using namespace std;
int d[MAX];
struct obiect{
int w,p;
};obiect coins[MAXc];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g,maxi=0;
scanf("%d%d",&n,&g);
for(int i=1;i<=n;i++)
scanf("%d%d",&coins[i].w,&coins[i].p);
d[0]=1;
for(int i=1;i<=n;i++)
for(int j=g;j>=0;j--)
if(d[j] and (j+coins[i].w)<=g)
d[j+coins[i].w]=max(d[j],(d[j]+coins[i].p));
for(int i=1;i<=g;i++)
if(d[i]>maxi)
maxi=d[i];
printf("%d",maxi-1);
return 0;
}