Cod sursa(job #1542941)

Utilizator felipeGFilipGherman felipeG Data 5 decembrie 2015 20:19:50
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
#include <algorithm>
#define obiect pair<int, int>
#define w first
#define p second
using namespace std;

ifstream f ("rucsac.in");
ofstream g ("rucsac.out");

int N, G, i, j, Pmax[10010];
obiect ob[5010];


int main()
{
    i = 1;
    f >> N >> G;

    while (f >> i >> j)
    {
        ob[i] = make_pair(i, j);
        ++i;
    }

    for (i = 1; i <= N; ++i)
        for (int x = G - ob[i].w; x >= 0; --x)
          Pmax[x + ob[i].w] = max(Pmax[ob[i].w + x], Pmax[x] + ob[i].p);

    g << Pmax[G];
    return 0;
}