Una curva è un insieme di punti su una griglia quadrata in modo tale che ogni punto abbia esattamente due vicini nel vicinato dei quattro vicini e che i punti formino un singolo componente collegato. Cioè, il grafico indotto dai punti su un grafico a griglia è isomorfo a un singolo ciclo. "Indotto" significa che due punti non possono toccare l'input senza essere vicini nel ciclo.
Un antipode di un vertice V in un grafico è un vertice più lontano da V. L'antipode è sempre unico su un ciclo di lunghezza pari (e ogni ciclo su un grafico a griglia è di lunghezza pari). La distanza deve essere misurata come indotta dal ciclo stesso senza rispettare la griglia quadrata sottostante.
Il tuo input deve essere l'immagine di una curva. La curva verrà contrassegnata con una sequenza di caratteri di segno numerico ( #) su uno sfondo di caratteri spaziali ( ). Uno dei punti sulla curva sarà contrassegnato dal Pcarattere ("pode"). L'output deve essere uguale all'ingresso tranne un punto curva deve essere sostituito con A("antipode").
Puoi presumere che i personaggi saranno riempiti con una forma rettangolare. Puoi presumere che la prima e l'ultima riga e colonna di input siano composte interamente da spazi (l'input è riempito con lo sfondo). In alternativa puoi supporre che la prima e l'ultima riga e colonna contengano ciascuna un punto curva (l'input ha una spaziatura minima).
È possibile immettere e generare questa griglia come una singola stringa separata da nuova riga, come una matrice di righe o come una matrice 2D di singoli caratteri. Questa scelta sarà la stessa per l'input e l'output. Se la tua lingua lo consente, puoi produrre l'output modificando l'input sul posto invece di restituire la stringa o l'array modificato.
Ingressi possibili:
P# P## #P# ##### #####P# ####### #####P######### #####P#########
## # # # # # # # # # # # # # #
### ### ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # # # # # # #
# P# ### ### # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
# # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### ###############
Uscite corrispondenti:
P# P## #P# #A### #####P# #A##### #####P######### #####P#########
#A # # # # # # # # # # # # # #
##A #A# ## ## # ### # # ### # # ### ### ### # # #
### # # ### # # # # # # # # # # # # A # # # # #
# P# ### ##A # ### # # # ### ### # # # # ### ### # # # #
## # # ### # # # # # # # # # # # # #
A # P # ##### P # ########### # # ##### ##### # # #
### ####### ### # # # # # # # #
############### ####### ####### #########A#####
Distanze dei vertici dai pod (modulo 10) (non emetterli):
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
