Cod sursa(job #1605847)

Utilizator ASTELOTudor Enescu ASTELO Data 19 februarie 2016 15:49:21
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<cstdio>
int g[10001],i,j,n,m,x,y,sum,maxim;
int main ()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
    {
    scanf("%d%d",&x,&y);
    for(j=sum;j>=1;j--)
        if(g[j]!=0)
            if(g[j+x]<g[j]+y)
                g[j+x]=g[j]+y;
    if(g[x]==0||g[x]<y)
        g[x]=y;
    sum+=x;
    if(sum>10000)
        sum=10000;
    }
for(i=m;i>=1;i--)
    if(g[i]>maxim)
        maxim=g[i];
printf("%d",maxim);
return 0;
}