SRM382 Div2 500

問題

ある大きさのチェス盤にK-riderと呼ばれるものが置いてある。
K-riderとは、チェスのナイトの動きを一度に最大K回連続してできる。たとえば、2-riderは1回のジャンプでナイトが動く2回分の動くところまで行くことができる。1-riderはナイトと同じである。
チェス盤の状態が与えられ、1から9までの数字が書いてあるマスは1-riderから9-riderの対応するいずれかが置いてあり、"."のマスはなにもない。
すべてのriderが同じマスに移動するために必要な各ジャンプの最小回数を返す。
各riderは同じマスに2つ以上いてもよい。もし不可能な場合は-1を返す。

考え方

BFS+全探索。
各riderについて、そのriderがいけるマスとその最小ジャンプ回数をBFSで求めておく。
そして、各マス(i,j)に集まった場合は、すべてのriderのそこまでのジャンプ回数の合計で求められるので、その最小値を返す。