З усіх символів ASCII неважко сказати, що деякі з них утворюють групи, які є обертаннями того самого основного символу. Наприклад, V > ^ <
. Це дає можливість побудувати мистецтво ASCII, яке можна обертати кратними на 90 градусів і все ще залишатись мистецтвом ASCII.
Змагання
Ваша мета - грати в програму, яка приймає ASCII мистецтво та кількість градусів, щоб повернути його від STDIN, і друкує обернене мистецтво ASCII на STDOUT.
У першому рядку введення ваша програма отримає число N. Це число представляє ширину та висоту мистецтва ASCII.
Потім ви отримаєте ще N рядків з рівно N символів (новий рядок не враховується в цьому числі). Розмір мистецтва завжди буде квадратним, хоча воно може мати прокладки у вигляді пробілів, щоб зробити його квадратом.
Потім ви отримаєте ще одне число на остаточному рядку: 90, 180 або 270. Це означає, на скільки градусів за годинниковою стрілкою слід обертати зображення.
Примітка. Введене зображення буде містити лише символи, які можна повернути на потрібну кількість. Якщо дані точно не відповідають цим вимогам, конкретної поведінки не потрібно.
Як вихід, ваша програма повинна надрукувати рівно N рядків з N символів, з новими рядками після кожного рядка. Зображення слід обертати таким чином, щоб кожен символ в оригіналі був замінений на обертану версію і переміщений у потрібне місце на зображенні.
Приклади (не дуже гарне мистецтво ASCII)
Вхідні дані
5
<- ||
| |V
+->+
|O
<--+
90
Вихідні дані
^ +-^
| | |
| V
+-+--
O <-
(Повороти на 90 і 270 не будуть виглядати дуже добре, оскільки символи не є квадратами)
Вхідні дані
6
+ /\ +
| \ \|
( \/|
\ )
I \ /
:) V $
180
Вихідні дані
$ ^ (:
/ \ I
( \
|/\ )
|\ \ |
+ \/ +
Обов’язкові підтримувані символи
Для всіх обертів (90, 180 та 270) програма повинна мати можливість обертатись:
- Прогалини,
+
,@
,X
іO
які ніколи не зміниться V
>
<
^
|
-
і\
/
(повернутий на 180 вони залишаються однаковими)
Для обертання на 180 градусів ці додаткові символи повинні підтримуватися
I
N
Z
%
:
0
=
S
~
$
#
які залишаються однаковимиP
d
,(
)
,[
]
,{
}
,M
W
, І9
6
P d, ( ), [ ], { }, M W, and 9 6
коли-небудь можна повернути на 90º або 270º?
v
, які не підтримуються символом. Я припускаю, що це було призначено для великих буквV
. Крім того, останній рядок у ньому не прокладений довжиною 5 символів.