AT_agc023_b [AGC023B] Find Symmetries
Description
[problemUrl]: https://atcoder.jp/contests/agc023/tasks/agc023_b
すぬけ君は、$ N $ 行 $ N $ 列からなるマス目状に区切られた盤面を $ 2 $ つ持っています。 どちらの盤面についても、上から $ i $ 行目、左から $ j $ 列目のマスをマス $ (i,j) $ と呼ぶことにします。
$ 1 $ つめの盤面には、すべてのマスに $ 1 $ つの英小文字が書かれています。 マス $ (i,j) $ に書かれている文字は $ S_{i,j} $ です。 $ 2 $ つめの盤面には、まだ何も書かれていません。
すぬけ君は、次のような手順で $ 2 $ つめの盤面に文字を書き込みます。
- まず、$ 2 $ つの整数 $ A,\ B $ ( $ 0\ \leq\ A,\ B\ )\ を選ぶ。 $
- すべてのマスに文字を書き込む。 具体的には、$ 2 $ つめの盤面のマス $ (i,j) $ に、$ 1 $ つめの盤面のマス $ (\ i+A,\ j+B\ ) $ の文字を書き込む。 ここで、$ N+k $ 行目と表される行は $ k $ 行目を意味する。 同様に、$ N+k $ 列目と表される列は $ k $ 列目を意味する。
操作後、$ 2 $ つめの盤面がよい盤面であるとは、すべての $ i,\ j $ ( $ 1\ \leq\ i,\ j\ \leq\ N $ ) に対して、 マス $ (i,j) $ とマス $ (j,i) $ にかかれている文字が等しいことを意味します。
$ 2 $ つめの盤面がよい盤面になるような整数 $ A,\ B $ ( $ 0\ \leq\ A,\ B\ )\ の選び方が何通りあるかを求めてください。 $
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_{1,1}S_{1,2}..S_{1,N} $ $ S_{2,1}S_{2,2}..S_{2,N} $ $ : $ $ S_{N,1}S_{N,2}..S_{N,N} $
Output Format
$ 2 $ つめの盤面がよい盤面になるような整数 $ A,\ B $ ( $ 0\ \leq\ A,\ B\ )\ の選び方が何通りあるかを出力せよ。 $
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 300 $
- $ S_{i,j} $ ( $ 1\ \leq\ i,\ j\ \leq\ N $ ) は英小文字
### Sample Explanation 1
各 $ A,\ B $ の組に対して、$ 2 $ つめの盤面は図のようになります。 $ 2 $ つめの盤面がよい盤面となっているのは $ (A,B)\ =\ (0,1) $ と $ (A,B)\ =\ (1,0) $ のときです。 よって答えは $ 2 $ です。 !\[\](https://img.atcoder.jp/agc023/2414e26dc3abb6dd7bfa0c800bb4af0c.png)
### Sample Explanation 2
どのように $ A,\ B $ を選んでも、$ 2 $ つめの盤面はよい盤面になります。
### Sample Explanation 3
どのように $ A,\ B $ を選んでも、$ 2 $ つめの盤面はよい盤面になりません。