Cod sursa(job #1331819)

Utilizator bogdanciurezubogdan ciurezu bogdanciurezu Data 1 februarie 2015 11:32:52
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define nmax 5050

using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
unsigned int PD[5][nmax * 2], Gr[nmax], Pr[nmax], G, N;
inline int maxim(int a, int b){
    return (a > b) ? a : b;
}
int main()
{unsigned int i, j, l;
    f>> N>> G;

    for(i = 1; i <= N; ++i)
        f>> Gr[i]>> Pr[i];

    j = 1;

    for(i = 1; i <= N; ++i, j = 1 - j)
        for(l = 0; l <= G; ++l)
        {
            PD[1 - j][l] = PD[j][l];

            if(Gr[i] <= l)
                PD[1 - j][l] = maxim(PD[1 - j][l], PD[j][l - Gr[i]] + Pr[i]);
        }
    g<< PD[j][G]<<'\n';
    return 0;
}