Cod sursa(job #1605835)

Utilizator ASTELOTudor Enescu ASTELO Data 19 februarie 2016 15:39:49
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<cstdio>
int g[10001],i,j,n,m,x,y,sum;
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+y]<g[j]+x)
                g[j+y]=g[j]+x;
    if(g[y]==0)
        g[y]=x;
    sum+=y;
    if(sum>10000)
        sum=10000;
    }
for(i=sum;i>=1;i--)
    if(g[i]<=m&&g[i]!=0)
        {
        printf("%d",i);
        break;
        }
return 0;
}