Cod sursa(job #2000307)

Utilizator cyg_CiuntuSorinCiuntu Sorin Andrei cyg_CiuntuSorin Data 13 iulie 2017 13:05:01
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>

using namespace std;

int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int i,n,j,g,pmax,p,G,last,d[10005];
    scanf("%d %d",&n,&G);
    for (i=1;i<=G;i++)
        d[i]=-1;
    last=0;
    for (i=1;i<=n;i++)
    {
        scanf("%d %d",&g,&p);
        for (j=last;j>=0;j--)
        {
            if(j+g<=G)
                if (d[j]!=-1)
                {
                    if (d[j+g]<d[j]+p)
                        d[j+g]=d[j]+p;
                    if (j+g>last)
                        last=j+g;
                }
        }
    }
    pmax=0;
    for (j=G;j>=1;j--)
        if (d[j]>pmax)
            pmax=d[j];
    printf("%d",pmax);
    return 0;
}