SRM376 Div2 500

問題

鉄道好きにはたまらないパズルゲーム「trainyard」の青写真が与えられる。
これはグリッドで構成され、「.」ならばそこには何もなく、「-」ならば東西の線路、「|」ならば北南の線路、「+」ならば交差点を表す。
「S」と書いてある場所から全方向にスタートすることができ、燃料1で1マス移動できる場合、燃料fuelで回ることのできる異なるマスの数はいくつか。

考え方

メモ化BFSで回れる場所すべてに回る。

反省

最大ケースのチェック。(無駄な動きをするとBad_alloc)