二次元座標圧縮をすることで、比較的楽に実装ができます。
が市松模様であれば、圧縮した後は 次市松模様になります。 そのため、圧縮した後で 次市松模様となっていない時、 は市松模様ではありません。 ただし、圧縮後に 次市松模様であっても、条件を満たさない場合があることに注意してください (以下で説明します)。 次市松模様であるかどうかは、辺で隣り合っているマスが異なっているかを見ることにより判定できます。
次に、 が上の条件を満たす時の操作を考えます。
縦、横方向にどれだけ連続で同じ文字が続いているかを持った配列を , とします。
入力例 2 の場合で考えると、
となります。
が 次市松模様のとき、 および は以下のようになっているはずです。
以下の正整数 以下の正整数
もしくは
以下の正整数
もしくは
以下の正整数
もしくは
上記のいずれかを満たすとき、 は市松模様ですが、そうでないときは市松模様にはなりません。