Cod sursa(job #2065982)

Utilizator Dragos123Tatar Dragos Vlad Dragos123 Data 14 noiembrie 2017 16:48:57
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <algorithm>

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

struct Object{
    int g, val;
};

const int MaxN = 5001;
int n, gmax, sol, aux[MaxN * 2];
Object a[MaxN];

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

    for (int i = 1; i <= n; ++i)
        fin >> a[i].g >> a[i].val;

    for (int i = 1; i <= n; ++i)
    {
        for (int j = gmax - a[i].g; j >= 0; --j)
            if (aux[j + a[i].g] < aux[j] + a[i].val)
            {
                aux[j + a[i].g] = aux[j] + a[i].val;
                sol = std::max(aux[j + a[i].g], sol);
            }
    }

    fout << sol;

    return 0;
}