Krzywa jest zbiorem punktów na kwadratowej siatce, tak że każdy punkt ma dokładnie dwóch sąsiadów w sąsiedztwie z czterema sąsiadami, a punkty tworzą pojedynczy połączony komponent. Oznacza to, że wykres indukowany przez punkty na wykresie siatki jest izomorficzny dla pojedynczego cyklu. „Indukowany” oznacza, że dwa punkty nie mogą dotykać wejścia bez sąsiadów w cyklu.
Antypodem wierzchołka V na wykresie jest wierzchołek najdalej oddalony od V. Antypod jest zawsze unikalny w cyklu o parzystej długości (a każdy cykl na wykresie siatki ma równą długość). Odległość mierzy się jako indukowaną przez sam cykl bez poszanowania leżącej poniżej siatki kwadratowej.
Twój wkład powinien być obrazem krzywej. Krzywa zostanie oznaczona sekwencją znaków znakowych ( #
) na tle znaków spacji ( ). Jeden z punktów na krzywej zostanie oznaczony
P
znakiem („pode”). Twoje dane wyjściowe będą takie same jak dane wejściowe, z tym że jeden punkt krzywej zostanie zastąpiony A
(„antypode”).
Możesz założyć, że postacie zostaną wypełnione prostokątnym kształtem. Możesz założyć, że pierwszy i ostatni wiersz i kolumna danych wejściowych będą się składały wyłącznie ze spacji (dane wejściowe są wypełnione tłem). Alternatywnie możesz założyć, że pierwszy i ostatni rząd i kolumna będą zawierały punkt krzywej (wejście ma minimalne wypełnienie).
Możesz wprowadzić i wyprowadzić tę siatkę jako pojedynczy ciąg rozdzielony znakiem nowej linii, jako tablicę wierszy lub jako tablicę 2D pojedynczych znaków. Ten wybór powinien być taki sam dla wejścia i wyjścia. Jeśli Twój język na to pozwala, możesz wyprowadzać dane wyjściowe, modyfikując wprowadzone dane zamiast zwracać zmodyfikowany ciąg lub tablicę.
Możliwe dane wejściowe:
P# P## #P# ##### #####P# ####### #####P######### #####P#########
## # # # # # # # # # # # # # #
### ### ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # # # # # # #
# P# ### ### # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
# # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### ###############
Odpowiednie wyniki:
P# P## #P# #A### #####P# #A##### #####P######### #####P#########
#A # # # # # # # # # # # # # #
##A #A# ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # A # # # # #
# P# ### ##A # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
A # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### #########A#####
Odległości wierzchołków od strąków (moduł 10) (nie wysyłaj tych):
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