#include #include #include #include int pocet_predmetu, kapacita_batohu, zadani, ceny[32], vahy[32]; int max_cena; uint32_t nejlepsi_stav; void r2(int vaha, int cena, int zanoreni, uint32_t stav){ if( zanoreni < pocet_predmetu ){ r2(vaha, cena, zanoreni + 1, stav); vaha += vahy[zanoreni]; if( vaha <= kapacita_batohu ){ cena += ceny[zanoreni]; stav |= (1 << zanoreni); r2(vaha, cena, zanoreni + 1, stav); if( cena > max_cena ){ max_cena = cena; nejlepsi_stav = stav; } } } else { vaha += vahy[zanoreni]; if( vaha <= kapacita_batohu ){ cena += ceny[zanoreni]; if( cena > max_cena ){ max_cena = cena; nejlepsi_stav = stav | (1<