Республиканская олимпиада по информатике, 2012 год, 9 класс
(Кардано)
Решетка Кардано — инструмент шифрования, представляющий собой специальную квадратную таблицу-карточку размера $N \times N,$ часть ячеек которой вырезана. Длина сообщения, которое нужно зашифровать, должна быть равна $N^2$ символов. Решетка Кардано накладывается на бумагу и сообщение выписывается по одному символу в вырезанную ячейку. Когда вырезанные ячейки окажутся заполнены решетка поворачивается на 90 градусов по часовой стрелке и процесс продолжается. Так повторяется еще 2 раза.
Назовем решетку «правильной», если при шифровании ни один символ не наложится на другой и «неправильной» в противном случае. Назовем «правильную» решетку «хорошей», если все $N^2$ символов исходного сообщения будут записаны, и «плохой» — в противном случае.
Для заданных решеток, определите, правильные ли они, а для правильных — хорошие или плохие.
посмотреть в олимпиаде
Ограничение по времени:
2 секунды
Ограничение по памяти:
64 мегабайта
Решетка Кардано — инструмент шифрования, представляющий собой специальную квадратную таблицу-карточку размера $N \times N,$ часть ячеек которой вырезана. Длина сообщения, которое нужно зашифровать, должна быть равна $N^2$ символов. Решетка Кардано накладывается на бумагу и сообщение выписывается по одному символу в вырезанную ячейку. Когда вырезанные ячейки окажутся заполнены решетка поворачивается на 90 градусов по часовой стрелке и процесс продолжается. Так повторяется еще 2 раза.
Назовем решетку «правильной», если при шифровании ни один символ не наложится на другой и «неправильной» в противном случае. Назовем «правильную» решетку «хорошей», если все $N^2$ символов исходного сообщения будут записаны, и «плохой» — в противном случае.
Для заданных решеток, определите, правильные ли они, а для правильных — хорошие или плохие.
Формат входного файла
Первая строка входного файла содержит одно целое число $K$ $(1 \le K \le 10)$ — количество решеток для проверки. Затем следует описание $K$ решеток. Описание каждой решетки начинается со строки, содержащей целое число $N$ $(1 \le N \le 100)$ — размер решетки. Затем следует $N$ строк, содержащих $N$ символов каждая. Символ «*» означает невырезанную часть решетки, «.» — вырезанную.
Формат выходного файла
Выходной файл должен содержать $K$ строк — по одной для каждой таблицы. Если соответствующая решетка неправильная, выведите «INCORRECT», если плохая — «BAD», если хорошая — «GOOD».
Примеры:
Вход 3 2 .* *. 4 .*** **** **.* **** 4 **.* *.** **** .*.*Ответ
INCORRECT BAD GOOD
Комментарий/решение:
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.