Cod sursa(job #1425523)

Utilizator Boss4321Andrei Theodore Marginean Boss4321 Data 27 aprilie 2015 16:45:12
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#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);
}