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

Задача . A. Поляна


Задача

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

Вы находитесь на поляне размера \(2 \times 2\). Каждая клетка этой поляны может содержать траву, либо же быть пустой. Значение \(a_{i, j}\) равно \(1\), если клетка \((i, j)\) содержит траву и \(0\) иначе.

За один ход вы можете выбрать одну строку и один столбец и срезать всю траву в этой строке и в этом столбце. Другими словами, вы выбираете строку \(x\) и столбец \(y\), затем вы срезаете траву во всех клетках \(a_{x, i}\) и во всех клетках \(a_{i, y}\) для всех \(i\) от \(1\) до \(2\). После того как вы срежете траву в клетке, она становится пустой (то есть ее значение заменяется на \(0\)).

Ваша задача — найти минимальное количество ходов, необходимое для того, чтобы срезать траву во всех непустых клетках поляны (то есть сделать все \(a_{i, j}\) равными нулю).

Вам необходимо ответить на \(t\) независимых наборов тестовых данных.

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

Первая строка входных данных содержит одно целое число \(t\) (\(1 \le t \le 16\)) — количество наборов тестовых данных. Затем следуют \(t\) наборов.

Набор тестовых данных состоит из двух строк, каждая из которых содержит два целых числа. Число в \(j\)-м столбце в \(i\)-й строке равно \(a_{i, j}\). Если \(a_{i, j} = 0\), тогда клетка \((i, j)\) пустая, а если \(a_{i, j} = 1\), тогда клетка \((i, j)\) содержит траву.

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

Выведите одно целое число на набор тестовых данных — минимальное количество ходов, необходимое для того, чтобы срезать траву во всех непустых клетках поляны (то есть сделать все \(a_{i, j}\) равными нулю) в соответствующем наборе тестовых данных.


Примеры
Входные данныеВыходные данные
1 3
0 0
0 0
1 0
0 1
1 1
1 1
0
1
2

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

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