Cod sursa(job #1632416)

Utilizator alinp25Alin Pisica alinp25 Data 6 martie 2016 09:42:12
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>

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

int v[2][10003];
int n, totalWeight;
int currentValue, currentWeight;

int reinit()
{
    for (int i = 0; i <= totalWeight; i++)
        v[0][i] = v[1][i];
}

int maxValue(int a, int b)
{
    if(a >= b)
        return a;
    else
        return b;
}

int main(int argc, char *argv[])
{
    fin >> n >> totalWeight;

    for (int i = 0; i <= totalWeight; i++)
        v[0][i] = 0;
    v[1][0] = 0;

    for (int contor = 1; contor <= n; contor++)
    {
        fin >> currentWeight >> currentValue;
        for (int i = 1; i <= totalWeight; i++)
        {
            if (i < currentWeight)
                v[1][i] = v[0][i];
            else
                v[1][i] = maxValue(v[0][i], currentValue + v[0][i - currentWeight]);
        }
        reinit();
    }
    fout << v[0][totalWeight];
    return 0;
}