AtCoder Beginner Contest 300 B問題 Same Map in the RPG World
問題
提出解答
問題の概要
行 列の からなる行列 が与えられる.
ここで, 縦方向のシフトと横方向のシフトを次のように定義する.
- 縦方向のシフト: の 行目を 行目に移動させる.
- 横方向のシフト: の 列目を 列目に移動させる.
次を満たす非負整数の組 は存在するか?
- に対して, 縦方向のシフトを 回, 横方向のシフトを 回行うと, は一致する.
制約
- の各要素は からなる.
解法
縦方向のシフトを続けて 回行った後の行列と, 縦方向のシフトを続けて 回行った後の行列は一致する. よって, の場合について考えれば良い.
横方向についても同様にして, とてもよい.
すると, 各 に対して, となるかどうかは 時間で判定できる.
よって, 全体で 時間で判定できる.