Cod sursa(job #1623254)

Utilizator MailatMailat Radu Mailat Data 1 martie 2016 18:21:32
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define NMax 101
#define MaxG 301
using namespace std;

int n, GMax;
int c[NMax], g[NMax];
int keep[MaxG][NMax], v[MaxG][NMax];

void Citire()
{
    ifstream fin("rucsac.in");
    fin >> n >> GMax;
    for(int i=1; i <= n; i++) fin >> g[i] >> c[i];
}

void Rezolvare()
{
    for(int i=1; i <= n; i++)
    {
        for(int S=1; S<= GMax; S++)
        {
            if(g[i] <= S)
            {
                v[i][S] = max(c[i] + v[i-1][S - g[i]], v[i-1][S]);
            }
        }
    }
}

void Afisare()
{
    ofstream fout("rucsac.out");
    fout << v[n][GMax] << endl;
    fout.close();
}
int main()
{
    Citire();
    Rezolvare();
    Afisare();
    return 0;
}