Cod sursa(job #1356088)

Utilizator roxana_97Soare Roxana Florentina roxana_97 Data 23 februarie 2015 10:27:13
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#define Nmax 5009
#define Gmax 10009

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

int N,G,gr[Nmax],p[Nmax],D[2][Gmax],k;

int main()
{
    f>>N>>G;
    for(int i=1;i<=N;i++) f>>gr[i]>>p[i];
    k=1;
    for(int i=1;i<=N;i++)
    {
        for(int cap=0;cap<=G;cap++)
        {
            D[k][cap]=D[1-k][cap]; //nu iau ob i
            if(gr[i]<=cap) // daca pot lua ob i
                if(D[k][cap]<D[1-k][cap-gr[i]]+p[i])
                    D[k][cap]=D[1-k][cap-gr[i]]+p[i];
        }
        k=1-k;

    }
    g<<D[1-k][G]<<'\n';

    f.close();g.close();
    return 0;

}