UnionFindなどを用いて移動先のマスと結合し、 グリッド外へ移動するようなマスを超頂点と連結することで 行動を終えることができるマスの数を求めることができます。

実装例

Java