Cod sursa(job #1425522)

Utilizator lucaignatescuIgnatescu Luca lucaignatescu Data 27 aprilie 2015 16:44:01
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10005]= {-1};
int main()
{
    d[0]=0;
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int maxdr=0,n,g,w,p,i,j;
    scanf("%d%d",&n,&g);
    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 maxp=0;
    for(j=1; j<=g; ++j)
        if(d[j]>maxp)
            maxp=d[j];
    printf("%d\n",maxp);
    return 0;
}