Cod sursa(job #1454219)

Utilizator razvan242Zoltan Razvan-Daniel razvan242 Data 25 iunie 2015 19:29:33
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int N, G;

struct Obiect
{
    int w, p;
}A[5001];

int pmax;
int Gcur, Pcur;

void Back(int k)
{
    if( k == N + 1 )
    {
        if( pmax < Pcur )
            pmax = Pcur;
        return;
    }
    if( Gcur + A[k].w <= G )
    {
        Gcur += A[k].w;
        Pcur += A[k].p;
        Back(k + 1);
        Gcur -= A[k].w;
        Pcur -= A[k].p;
    }
    Back(k + 1);
}

int main()
{
    fin >> N >> G;
    for( int i = 1; i <= N; ++i )
        fin >> A[i].w >> A[i].p;
    Back(1);
    fout << pmax << '\n';
    return 0;
}