200-202

200

cost,timeそれぞれでワーシャルフロイドする。ワーシャルフロイドのコードを書き写し間違えてはまった。

201

最初、アイテムの木を作って葉ノードから、、、と思ったら、そもそも木じゃない。
アイテムが合成で安く作れる場合はそのアイテムのコストをその安いコストに置き換える、というのを置き換えが発生しなくなるまで実行した。

202

理iの金額ci、個数niを考えると、合計金額Σci*niが予算金額以下で最大の素数となる合計金額を探す。
niの組み合わせは覚えておかなくていいので、いくつか料理の組み合わせでその金額を表現できるかどうかを表す1次元配列を用意して、予算以下で素数で配列がtrueの最大金額を返した。