Eine Kurve ist eine Menge von Punkten auf einem quadratischen Gitter, sodass jeder Punkt genau zwei Nachbarn in der Nachbarschaft mit vier Nachbarn hat und die Punkte eine einzelne verbundene Komponente bilden. Das heißt, der Graph, der durch die Punkte in einem Gittergraph induziert wird, ist isomorph zu einem einzelnen Zyklus. "Induziert" bedeutet, dass sich zwei Punkte in der Eingabe nicht berühren können, ohne Nachbarn im Zyklus zu sein.
Ein Antipode eines Scheitelpunkts V in einem Diagramm ist ein Scheitelpunkt, der am weitesten von V entfernt ist. Der Antipode ist in einem Zyklus mit gerader Länge immer eindeutig (und jeder Zyklus in einem Gitterdiagramm hat eine gerade Länge). Der Abstand ist so zu messen, wie er durch den Zyklus selbst ohne Berücksichtigung des zugrunde liegenden quadratischen Gitters hervorgerufen wird.
Ihre Eingabe soll ein Bild einer Kurve sein. Die Kurve wird mit einer Folge von Zahlenzeichen ( #
) auf einem Hintergrund aus Leerzeichen ( ) markiert . Einer der Punkte auf der Kurve wird mit dem
P
Zeichen ("pode") markiert . Ihre Ausgabe muss mit der Eingabe identisch sein, mit der Ausnahme, dass ein Kurvenpunkt durch A
("Antipode") ersetzt werden soll.
Sie können davon ausgehen, dass die Zeichen zu einer rechteckigen Form aufgefüllt werden. Sie können davon ausgehen, dass die erste und letzte Zeile und Spalte der Eingabe vollständig aus Leerzeichen bestehen (Eingabe wird mit Hintergrund aufgefüllt). Alternativ können Sie davon ausgehen, dass die erste und die letzte Zeile und Spalte jeweils einen Kurvenpunkt enthalten (Eingabe mit minimaler Auffüllung).
Sie können dieses Raster als einzelne durch Zeilenumbrüche getrennte Zeichenfolge, als Array von Zeilen oder als 2D-Array einzelner Zeichen eingeben und ausgeben. Diese Auswahl muss für die Eingabe und Ausgabe gleich sein. Wenn Ihre Sprache dies zulässt, können Sie die Ausgabe durchführen, indem Sie die Eingabe ändern, anstatt die geänderte Zeichenfolge oder das geänderte Array zurückzugeben.
Mögliche Eingaben:
P# P## #P# ##### #####P# ####### #####P######### #####P#########
## # # # # # # # # # # # # # #
### ### ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # # # # # # #
# P# ### ### # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
# # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### ###############
Entsprechende Ausgänge:
P# P## #P# #A### #####P# #A##### #####P######### #####P#########
#A # # # # # # # # # # # # # #
##A #A# ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # A # # # # #
# P# ### ##A # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
A # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### #########A#####
Scheitelpunktabstände zu den Pods (Modulo 10) (diese nicht ausgeben):
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