Loading [MathJax]/jax/output/SVG/jax.js

Республиканская олимпиада по информатике, 2012 год, 9 класс


(Кардано)
Ограничение по времени:
2 секунды
Ограничение по памяти:
64 мегабайта

Решетка Кардано — инструмент шифрования, представляющий собой специальную квадратную таблицу-карточку размера N×N, часть ячеек которой вырезана. Длина сообщения, которое нужно зашифровать, должна быть равна N2 символов. Решетка Кардано накладывается на бумагу и сообщение выписывается по одному символу в вырезанную ячейку. Когда вырезанные ячейки окажутся заполнены решетка поворачивается па 90 градусов по часовой стрелке и процесс продолжается. Так повторяется еще 2 раза.
Назовем решетку «правильной», если при шифровании ни один символ не наложится на другой и «неправильной» в противном случае. Назовем «правильную» решетку «хорошей», если все N2 символов исходного сообщения будут записаны, и «плохой» — в противном случае.
Для заданных решеток, определите, правильные ли они, а для правильных — хорошие или плохие.
Формат входного файла
Первая строка входного файла содержит одно целое число K (1K10) — количество решеток для проверки. Затем следует описание K решеток. Описание каждой решетки начинается со строки, содержащей целое число N (1N100) — размер решетки. Затем следует N строк, содержащих N символов каждая. Символ «*» означает невырезанную часть решетки, «.» — вырезанную.
Формат выходного файла
Выходной файл должен содержать K строк — по одной для каждой таблицы. Если соответствующая решетка неправильная, выведите «INCORRECT», если плохая — «BAD», если хорошая — «GOOD».
Примеры:
Вход
3
2
.*
*.
4
.***
****
**.*
****
4
**.*
*.**
****
.*.*
Ответ
INCORRECT
BAD
GOOD
посмотреть в олимпиаде

Комментарий/решение: