Вам дана квадратная матрица из \(n\) строк и \(n\) столбцов. В каждой ячейке содержится одно число: \(0\) или \(1\).
За одну операцию вы можете выбрать любую ячейку матрицы и инвертировать её значение (\(0 \to 1\) или \(1 \to 0\)).
Найдите за какое минимальное число операций можно получить квадрат который не меняется при поворотах на \(0^{\circ}\), \(90^{\circ}\), \(180^{\circ}\) и \(270^{\circ}\).
На картинке ниже показан пример всех поворотов одной матрицы.
Выходные данные
Для каждого набора входных данных выведите одно число — минимальное количество операций необходимое чтобы получить квадратную матрицу, которая не меняется при поворотах на \(0^{\circ}\), \(90^{\circ}\), \(180^{\circ}\) и \(270^{\circ}\).
Примечание
В первом наборе входных данных, мы можем применить одну операцию чтобы сделать матрицу симметричной \(\begin{matrix}0 & 1 & 0\\ 1 & 1 & \color{red}{1}\\ 0 & 1 & 0\end{matrix}\). Теперь, любой поворот не меняет данную матрицу.
Во втором наборе входных данных, нет необходимости применять ни одной операции, любые допустимые повороты и так не меняют её.
| № | Входные данные | Выходные данные |
|
1
|
5
3
010
110
010
1
0
5
11100
11011
01011
10011
11000
5
01000
10101
01010
00010
01001
5
11001
00000
11111
10110
01111
|
1
0
9
7
6
|