Cod sursa(job #2713254)

Utilizator Razvan_GabrielRazvan Gabriel Razvan_Gabriel Data 27 februarie 2021 15:49:57
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int n,g;
int smax;

typedef struct obiect_t{
    int val;
    int greutate;
}obiect;

obiect obiecte[5000];

void recursiv(int k, int gc, int pc){
    for(int i=0;i<=1;i++){
        if(i==1){
            int tgc=gc+obiecte[k].greutate;
            int tpc=pc+obiecte[k].val;

            if(tgc<=g){
                if(tpc>smax)
                    smax=tpc;
                if(tgc<g && k<n-1)
                    recursiv(k+1,tgc,tpc);
            }
        }else if(k<n-1)
            recursiv(k+1,gc,pc);

    }
}

int main()
{
    fin>>n>>g;
    for(int i=0;i<n;i++)
        fin>>obiecte[i].greutate>>obiecte[i].val;

    recursiv(0,0,0);

    fout<<smax;

    return 0;
}