Článek ze série věnované úlohám Matematické olympiády - kategorie P (programování) diskutuje různé možnosti řešení jedné teoretické soutěžní úlohy z krajského kola konaného ve školním roce 2017/18. Úkolem je nalézt způsob, jak nejlevněji uvařit jídlo pomocí zadaného seznamu receptů. Jsou přitom dány vstupní ceny jednotlivých surovin a jídla uvařená podle jednotlivých receptů můžeme používat jako vstup pro další navazující recepty.
Algoritmy řešící tuto úlohu jsou analogií známých grafových algoritmů pro určení nejkratších vzdáleností v ohodnoceném grafu: algoritmu Bellmanova-Fordova a Dijkstrova. Článek uvádí i stručný nástin těchto dvou grafových algoritmů. Kromě detailního rozboru úlohy najdeme v článku tři základní varianty řešení s různou časovou složitostí.
Dvě z těchto řešení jsou zapsána i ve formě ukázkového programu.