Крива - це набір точок на квадратній сітці таким чином, що кожна точка має рівно двох сусідів по сусідству з чотирма сусідами, а точки утворюють єдиний з'єднаний компонент. Тобто графік, індукований точками на графіку сітки, є ізоморфним для одного циклу. "Індукований" означає, що дві точки не можуть торкатися у вході, не будучи сусідами по циклу.
Антипод вершини V у графі є вершиною, віддаленою від V. Антипод завжди унікальний на циклі рівної довжини (і кожен цикл на сітчастому графіку має парну довжину). Відстань вимірюється відповідно до індукованого самим циклом без поваги до нижньої квадратної сітки.
Вашим входом має бути зображення кривої. Крива буде позначена послідовністю символів з цифрою ( #
) на тлі поза символами пробілу ( ). Одна з точок на кривій буде позначена
P
символом ("pod"). Ваш вихід повинен бути таким же, як і вхід, за винятком того, що одна точка кривої повинна бути замінена на A
("антипод").
Ви можете припустити, що символи будуть викладені прямокутної форми. Ви можете припустити, що перший і останній рядок і стовпець введення будуть повністю складені з пробілів (вхід підкладений фоном). Як варіант, ви можете припустити, що перший і останній рядок і стовпець будуть містити точку кривої (вхід має мінімальний пробіл).
Ви можете вводити та виводити цю сітку у вигляді єдиного рядка, розділеного новим рядком, як масив рядків або як двовимірний масив окремих символів. Цей вибір повинен бути однаковим для введення та виводу. Якщо ваша мова дозволяє це, ви можете вивести, змінивши ввід на місці замість повернення зміненого рядка або масиву.
Можливі входи:
P# P## #P# ##### #####P# ####### #####P######### #####P#########
## # # # # # # # # # # # # # #
### ### ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # # # # # # #
# P# ### ### # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
# # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### ###############
Відповідні результати:
P# P## #P# #A### #####P# #A##### #####P######### #####P#########
#A # # # # # # # # # # # # # #
##A #A# ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # A # # # # #
# P# ### ##A # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
A # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### #########A#####
Відстань вершин від поділів (модуль 10) (не виводити їх):
P1 P12 1P1 5A543 54321P1 9A98765 54321P123456789 54321P123456789
1A 1 3 2 2 4 2 6 2 8 4 6 0 6 0
23A 3A3 32 01 7 109 3 7 109 3 7 901 789 543 1 7 1
321 1 9 543 8 2 8 4 6 2 8 2 8 8 2 6 A 6 2 2 8 2
4 P1 234 89A 0 876 2 9 3 765 543 7 1 9 7 345 987 1 3 9 3
56 2 1 567 9 9 1 0 4 6 0 0 6 0 4 0 4
A 3 P 8 87654 P 1 56789012345 9 1 54321 56789 5 1 5
654 1234567 321 2 8 2 0 4 6 2 6
345678901234567 3456789 3210987 345678901A10987