Entrada
Su entrada es una sola cadena, separada por nuevas 2n+1
líneas en líneas de longitud 2n+1
, para algún número entero n ≥ 0
. El entero n
no es parte de la entrada; Tendrás que calcularlo a partir de la cadena. Las líneas están compuestas por los "caracteres de dirección" >^<v
. Si las nuevas líneas plantean un problema, puede reemplazarlas por tuberías verticales |
.
La entrada forma una cuadrícula cuadrada de tamaño (2n+1)x(2n+1)
, y cada celda de la cuadrícula se interpreta como un enrutador de rotor , que apunta en una de las cuatro direcciones cardinales. Procedemos a colocar un token en el enrutador en el centro de la cuadrícula, y luego los enrutadores lo moverán de la siguiente manera. Cuando el token aterriza en un enrutador, el enrutador gira 90 grados en el sentido contrario a las agujas del reloj y mueve el token un paso en la nueva dirección a la que apunta. Si aterriza en otro enrutador, el proceso se repite, pero eventualmente, el token se caerá de la red.
Salida
Su salida es la configuración final de los enrutadores, en el mismo formato que la entrada.
Ejemplo
Como ejemplo de entrada, considere la 3x3
cuadrícula
<^<
^><
>^v
donde el enrutador central se ha resaltado para indicar el token (es un poco difícil de ver). El enrutador central gira para mirar hacia el norte y mueve el token a la celda central de la fila superior:
<^<
^^<
>^v
Este enrutador gira para mirar hacia el oeste y envía el token a la esquina superior izquierda:
<<<
^^<
>^v
El enrutador en la esquina envía el token al sur, por lo que ahora está en la celda más a la izquierda de la fila central:
v<<
^^<
>^v
Ese enrutador gira para mirar hacia el oeste y envía el token fuera de la red.
v<<
<^<
>^v
Esta es la configuración final de la cuadrícula, por lo que su programa debería generarla. Tenga en cuenta que en ejemplos más complejos, el token puede pasar el mismo enrutador varias veces antes de caerse de la red.
Reglas
Puede escribir una función o un programa completo. Este es el código de golf, por lo que gana el conteo de bytes más bajo. Las lagunas estándar no están permitidas. Puede decidir si hay una nueva línea final en la entrada y / o salida.
Casos de prueba
Input:
v
Output:
>
Input:
<^<
^><
>^v
Output:
v<<
<^<
>^v
Input:
>>^>>
v<vv<
>^>^<
^<>>^
vvv>>
Output:
>>^>>
>v>>v
^>>vv
^^>>>
v^<<^
Input:
<^^^^^^^^
<<^^^^^^>
<<<^^^^>>
<<<<^^>>>
<<<<^>>>>
<<<vv>>>>
<<vvvv>>>
<vvvvvv>>
vvvvvvvv>
Output:
>>>>>>>>v
^>>>>>>vv
^^>>>>vvv
^^^>>vvvv
<<<<<vvvv
^^^^<<vvv
^^^<<<<vv
^^<<<<<<v
^<<<<<<<<