Cod sursa(job #2493848)

Utilizator Florinos123Gaina Florin Florinos123 Data 17 noiembrie 2019 01:01:21
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
//Solutie bruta O(2^n)

#include <iostream>
#include <fstream>

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

int n,greutate,weight[10001],cost[10001],i;

int rucsac(int n, int c)
{
    int rezultat,obiect1,obiect2;
    if(n==0 || c==0)
        rezultat=0;
    else
        if(weight[n]>c)
            rezultat=rucsac(n-1,c);
        else
        {
            obiect1=rucsac(n-1,c);
            obiect2=cost[n]+rucsac(n-1,c-weight[n]);
            rezultat=max(obiect1,obiect2);
        }
    return rezultat;
}

int main()
{
    f>>n>>greutate;
    weight[0]=cost[0]=0;
    for(i=1;i<=n;i++)
        f>>weight[i]>>cost[i];
    g<<rucsac(n,greutate);

    return 0;
}