Codeforces Round 676 (Div. 2) |
---|
Закончено |
Пинк Флойд устраивают розыгрыш Роджера Уотерса. Они знают, что ему не нравятся стены, он хочет иметь возможность свободно ходить, поэтому они запрещают ему выходить из своей комнаты, которую можно рассматривать как таблицу.
У Роджера Уотерса есть квадратная таблица размером $$$n\times n$$$ и он хочет добраться из левого верхнего угла ($$$1,1$$$) своей таблицы в правый нижний угол ($$$n,n$$$). Уотерс может перемещаться от клетки к любой другой клетке, смежной с ней по стороне, и не может выходить за пределы таблицы. Также за исключением клеток ($$$1,1$$$) и ($$$n,n$$$) в каждой клетке записано значение $$$0$$$ или $$$1$$$.
Перед началом своего обхода он выберет либо $$$0$$$, либо $$$1$$$ и сможет переходить только по клеткам, значения в которых равны выбранной им цифре. Начальная и конечная клетки ($$$1,1$$$) и ($$$n,n$$$) — исключения из этого правила, он может проходить через них независимо от выбранной цифры. В клетке ($$$1, 1$$$) записана буква 'S', а в клетке ($$$n, n$$$) — буква 'F'.
Например, в первом примере теста он может перейти от ($$$1,1$$$) к ($$$n,n$$$), используя нули на этом пути: ($$$1, 1$$$), ($$$2, 1$$$), ($$$2, 2$$$), ($$$2, 3$$$), ($$$3, 3$$$), ($$$3, 4$$$), ($$$4, 4$$$)
Остальная часть группы (Пинк Флойд) хочет, чтобы Уотерс не смог совершить свой обход, поэтому пока он не видит, они инвертируют максимум две клетки в таблице (из $$$0$$$ на $$$1$$$ или наоборот). Они боятся, что могут не успеть и просят вашей помощи в выборе клеток. Заметьте, что вы не можете инвертировать клетки $$$(1, 1)$$$ и $$$(n, n)$$$.
Можно показать, что для данных ограничений решение всегда существует.
Также обратите внимание, что Уотерс выберет свою цифру обхода после того, как группа изменит свою таблицу, поэтому он не должен быть в состоянии достичь ($$$n,n$$$) независимо от того, какую цифру он выберет.
Каждый тест содержит несколько наборов входных данных. В первой строке указано количество наборов входных данных $$$t$$$ ($$$1 \le t \le 50$$$). Описание наборов входных данных приведено ниже.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$3 \le n \le 200$$$).
Следующие $$$n$$$ строк каждого набора входных данных содержат двоичную таблицу, в клетке ($$$1, 1$$$) написано «S», а в ($$$n, n$$$) — «F».
Сумма значений $$$n$$$ по всем наборам входных данных не превышает $$$200$$$.
Для каждого набора входных данных выведите в первой строке целое $$$c$$$ ($$$0 \le c \le 2$$$) — количество клеток, которые вы переворачиваете.
В $$$i$$$-й из следующих $$$c$$$ строк выведите координаты $$$i$$$-й инвертированной ячейки. Нельзя перевернуть одну и ту же ячейку дважды. Заметьте, что вы не можете инвертировать клетки $$$(1, 1)$$$ и $$$(n, n)$$$.
3 4 S010 0001 1000 111F 3 S10 101 01F 5 S0101 00000 01111 11111 0001F
1 3 4 2 1 2 2 1 0
Для первого набора входных данных, после инвертирования клетки, мы получаем следующую таблицу:
S010
0001
1001
111F
Название |
---|