Cod sursa(job #1097011)

Utilizator TBLam99Tran Bach Lam TBLam99 Data 2 februarie 2014 20:40:22
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
int sol[10001],w[5001],p[5001];
int n,g,i,j,k,maxim;
int main()
{
        freopen("rucsac.in","r",stdin);
        freopen("rucsac.out","w",stdout);
        scanf("%d%d",&n,&g);
        for(j=1;j<=g;j++)
            sol[j]=-1;
        for(i=1;i<=n;i++)
            scanf("%d%d",&w[i],&p[i]);
        sol[0]=0;
        for(i=1;i<=n;i++)
            for(j=g-w[i];j>=0;j--)
                if(sol[j]!=-1)
                   if(sol[j]+p[i]>sol[j+w[i]])
                        sol[j+w[i]]=sol[j]+p[i];
        for(i=2;i<=g;i++)
            if(sol[i]>maxim)
                maxim=sol[i];
        printf("%d\n",maxim);
        return 0;
}