Sì, direi che va bene. Attenzione che dentro all'if il confronto si fa con il doppio uguale.
Ti posto il codice che avevo scritto io, che stampa tutte le portate possibili e un asterisco di fianco a quelle da mangiare:
codice:std::cout << "Portate da mangiare: " << std::endl; for(int i=0; i<size; ++i) { std::cout << portate[i]; if(binario_migliore[i] == 1) { std::cout << " *"; } std::cout << std::endl; }
Vedi tu cosa preferisci...