Educational Codeforces Round 52 - D. Three Pieces
駒が3種類あるので、各girdを拡張させてとして考えましょう。頂点数はせいぜい300です。
距離の定義をとすると、これを辞書順最小にしろという問題になります。
となるとワーシャルフロイドが十分に間に合うので、ワーシャルフロイドをしましょう。(各始点について01bfsにすると計算量が結構さがるのでそれでもいいと思います)
あとは とすればワーシャルフロイドの結果を用いて素直に遷移できます。
提出コード
まとめ
ワーシャルフロイドのグラフつくるパートがめんどくさかった…