Cod sursa(job #1851108)

Utilizator NicuBaciuNicu Baciu NicuBaciu Data 19 ianuarie 2017 12:35:53
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int n, g;
int w[5001], p[5001];

int d[5001][10001];

int main()
{
    fin >> n >> g;

    for(int i=1; i<=n; i++)
        fin >> w[i] >> p[i];

    for(int i=1; i<=n; i++)
    {
        int poz1;
        int poz2;

        if(i%2==0)
        {
            poz1=0;
            poz2=1;
        }
        else
        {
            poz1=1;
            poz2=0;
        }

        poz1=i;
        poz2=i-1;

        for(int cw=1; cw<=g; cw++)
            if(cw>=w[i])
                d[poz1][cw]=max(d[poz2][cw], (d[poz2][cw-w[i]]+p[i]));
    }

    if(n%2==0)
        fout << d[n][g];
    else
        fout << d[n][g];

    return 0;
}