Олимпиадный тренинг

Задача . E. Симметричная решётка


Задача

Темы: реализация *1200

Вам дана квадратная матрица из \(n\) строк и \(n\) столбцов. В каждой ячейке содержится одно число: \(0\) или \(1\).

За одну операцию вы можете выбрать любую ячейку матрицы и инвертировать её значение (\(0 \to 1\) или \(1 \to 0\)).

Найдите за какое минимальное число операций можно получить квадрат который не меняется при поворотах на \(0^{\circ}\), \(90^{\circ}\), \(180^{\circ}\) и \(270^{\circ}\).

На картинке ниже показан пример всех поворотов одной матрицы.

Входные данные

Первая строка содержит одно целое число \(t\) (\(1 \leq t \leq 100\)) — количество наборов входных данных. Далее следует описание наборов.

Первая строка каждого набора входных данных содержит число \(n\) (\(1 \leq n \leq 100\)) — размер матрицы.

Следующие \(n\) строк каждого набора входных данных содержат строку длины \(n\), состоящую из значений \(a_{i,j}\) (\(0 \leq a_{i,j} \leq 1\)) — числа, записанные в каждой ячейке.

Выходные данные

Для каждого набора входных данных выведите одно число — минимальное количество операций необходимое чтобы получить квадратную матрицу, которая не меняется при поворотах на \(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

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя