Вам дана квадратная матрица из \(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
|