[5,7] Hosté na mejdanu

Máme skupinu lidí, kteří jsou zvaní na oslavu. Každý z nich má ale přísné nároky na to, aby se bavil: od každého jsme dostali seznam lidí, kteří musejí všichni přijít dřív, než se uráčí přijít dotyčný. Chceme zjistit, kdo všechno přijde a v jakém pořadí.

Zadání dostáváme jako seznam dvojic. První z každé dvojice je jméno dotyčného, druhá položka dvojice je seznam hostů, kteří musejí přijít dřív.

Program má vrátit seznam jmen hostů od toho, kdo může přijít jako první, po posledního, kdo je ochotný přijít. Když někdo je ochotný přijít, musí se na seznamu objevit. Pokud je možných řešení víc, stačí vypsat libovolné z nich.