Cod sursa(job #1185929)

Utilizator armandpredaPreda Armand armandpreda Data 17 mai 2014 11:20:04
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
#define LIM 50000000

using namespace std;

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