Cod sursa(job #856833)

Utilizator varga13VarGaz13 varga13 Data 16 ianuarie 2013 23:38:38
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 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=1;i<=W;++i)
{
    if(g[i]>Sol) 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 10000*/