Cod sursa(job #2713261)

Utilizator Razvan_GabrielRazvan Gabriel Razvan_Gabriel Data 27 februarie 2021 16:00:59
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 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) {
    int tgc=gc+obiecte[k].greutate;
    int valk=obiecte[k].val;

    bool nultim=k<n-1;
    k++;
    if(tgc<=g) {
        int tpc=pc+valk;
        if(tpc>smax)
            smax=tpc;
        if(tgc<g && nultim)
            recursiv(k,tgc,tpc);
    }
    if(nultim)
        recursiv(k,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;
}