Cod sursa(job #1114406)

Utilizator vlad.rusu11Rusu Vlad vlad.rusu11 Data 21 februarie 2014 16:33:50
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#define maxim(a,b) a>b ? a : b
using namespace std;

int d[10001];

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

    int N, G, i, j, w, p, MAX;

    fin >> N >> G;
    for(i=1 ; i<=N ; ++i)
    {
        fin >> w >> p;
        for(j=G ; j>w ; --j)
            if(d[j - w])
                if(d[j] < p + d[j - w])
                    d[j] = d[j - w] + p;
        if(d[w] < p)
            d[w] = p;
    }

    MAX = 0;
    for(i=1 ; i<=G ; ++i)
        MAX = maxim(MAX,d[i]);

    fout << MAX;

    return 0;
}