Cod sursa(job #856802)

Utilizator varga13VarGaz13 varga13 Data 16 ianuarie 2013 22:54:49
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#define Open ifstream f("rucsac.in"); ofstream gg("rucsac.out");
#define Close f.close(); gg.close();
#define Enter gg<<'\n';
#define Tab gg<<'\t';
#define elvis 10000

using namespace std;
int g[elvis];
int main()
{int N,W,k,v,Sol=0;
    Open
    f>>N>>W;
    int i,j;
    for(i=0;i<N;++i)
    {
        f>>k>>v;

        for(j=W+1;j>k;--j)
        {
            if(g[j-k]>0) g[j]=(g[j]<g[j-k]+v) ? g[j-k]+v : g[j];
        }

        g[k]=(g[k]<v) ? v : g[k];

    }



for(i=W;i>0&&g[i]==0;--i);
Sol=g[i];



    gg<<Sol;

    Close
    return 0;
}


/*N -nr obiecte
W -greutatea maxim admisa
k -indicele din sir
v -valoarea
g[elvis] -sir de 5000*/