Pagini recente » Cod sursa (job #398017) | Cod sursa (job #98188) | Cod sursa (job #1805021) | Cod sursa (job #1020122) | Cod sursa (job #1425523)
#include <cstdio>
#include <algorithm>
using namespace std;
const int GMAX=10001;
int d[GMAX];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,i,G,p,w,j;
scanf("%d%d",&n,&G);
d[0]=0;
for(i=1; i<=G; i++)
d[i]=-1;
int maxdr=0;
for(i=1; i<=n; i++)
{
scanf("%d%d",&w,&p);
for(j=maxdr; j>=0; --j)
if(j+w<=G)
if(d[j]!=-1)
{
d[j+w]=max(d[j+w],d[j]+p);
if(j+w>maxdr)
maxdr=j+w;
}
}
int maxprofit=0;
for(j=1; j<=G; ++j)
if(d[j]>maxprofit)
maxprofit=d[j];
printf("%d",maxprofit);
}