Cod sursa(job #1168413)

Utilizator AlexNiuclaeNiculae Alexandru Vlad AlexNiuclae Data 8 aprilie 2014 13:07:28
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#include <algorithm>
#define G 10010
#define N 5010

using namespace std;

int g[N],p[N],uz[2][G],n,gmax,i,j;

int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);

    scanf("%d %d", &n, &gmax);
    for (i=1;i<=n;++i)
     scanf("%d %d", &g[i], &p[i]);

    for (i=1;i<=n;++i)
     {
         for (j=1;j<=gmax;++j)
         {
            uz[1][j]=uz[0][j];
             if (j-g[i]>=0)
                uz[1][j]=max(uz[1][j], uz[0][j-g[i]]+p[i]);
         }

         for (j=1;j<=gmax;++j)
            uz[0][j]=uz[1][j], uz[1][j]=0;

     }

    printf("%d\n", uz[0][gmax]);

    return 0;
}