Cod sursa(job #1006116)

Utilizator mariacMaria Constantin mariac Data 6 octombrie 2013 14:00:33
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;
int N,G,v[100],g[100],x[100],vmax=0;
bool viz[100];

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
void back(int k, int ga, int va)
{
    int i,j;
    for(i = 1;i <= N; i++)
    if(!viz[i] && ga + g[i] <= G)
        {
            viz[i]=1;
            if(ga + g[i] <= G && va + v[i] >vmax)
            {
                vmax = va + v[i];
            }
            if(ga + g[i] < G) back(k+1 , ga + g[i], va + v[i]);
            viz[i] = 0;

        }

}
int main()
{
    int i;
    fin>>N>>G;
    for(i=1;i <= N;i++)
        fin>>g[i]>>v[i];
    back(1,0,0);
    fout<< vmax<<"\n";
    return 0;
}