Cod sursa(job #2030342)

Utilizator cristigrigoreGrigore Cristan Andrei cristigrigore Data 1 octombrie 2017 14:45:28
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>

using namespace std;
int N,G,i,w,p,a[2][10001],j;
int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    scanf("%d %d",&N,&G);
    for(i=1; i<=N; i++)
    {
        scanf("%d %d",&w,&p);
        if(i%2)
        {
            for(j=1; j<=G; j++)
            {
                if(j < w)
                a[0][j] = a[1][j];
                else
                a[0][j] = a[1][j] < a[1][j-w] + p ? a[1][j-w] + p : a[1][j];
            }
        }
        else
        {
            for(j=1; j<=G; j++)
            {
                if(j < w)
                a[1][j] = a[0][j];
                else
                a[1][j] = a[0][j] < a[0][j-w] + p ? a[0][j-w] + p : a[0][j];
            }
        }
    }
    printf("%d\n",a[1][G]);
    return 0;
}