El mundo es un conjunto de celdas de cinco por cinco. Se envuelve por todos lados. Se puede visualizar como ...
XXXXX XXXXX XXOXX XXXXX XXXXX
Eres un O. Te encanta viajar por el mundo, y lo haces de acuerdo con las siguientes reglas (deja que C sea el día actual):
- En los primeros días, te sientes nostálgico. Regresa a donde empezaste ayer.
- En días impares , sientes nostalgia. Mueva un paso horizontal más cerca de casa, si es posible, y un paso vertical más cerca de casa, si es posible. Ignora la envoltura mundial con el propósito de determinar la cercanía.
- En incluso días, se siente aventurero. Mueve C / 2 pasos hacia el sur.
- En días cuadrados , te sientes aventurero. Muévete hacia la pared este.
- En los días de Fibonacci , el mundo se expande hacia el sur en una fila.
- En días triangulares , el mundo se expande hacia el este en una columna.
Si se aplican dos o más de las reglas anteriores al mismo tiempo, aplíquelas en el orden indicado. Por ejemplo, en un primer día impar, primero regrese a donde comenzó ayer, y luego muévase un paso más cerca de casa.
Vives en el centro del mundo (inicial), es decir, posición (2,2), indexado a cero desde la esquina noroeste. Comienzas tu viaje allí el primer día.
Entrada
Un solo entero, N.
Salida
Sus coordenadas X e Y en el enésimo día, indexadas a cero desde la esquina noroeste, separadas por un solo espacio.
Caso de prueba con explicación
Dada una entrada de 3
, la salida correcta es:
2 3
Podemos trabajar en esto un día a la vez. A partir del día 1, debemos aplicar los siguientes movimientos:
- Impar, cuadrado, fibonacci y triangular
- Prime, even y Fibonacci
- Prime, impar, Fibonacci y triangular
En forma visual:
Día 1 Día 2 Día 3 XXXXX XXXXXX XXXXXX XXXXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXOXX -> XXXXOX -> XXXXXX -> XXXOXXX XXXXX XXXXXX XXOXXX XXXXXXX XXXXX XXXXXX XXXXXX XXXXXXX XXXXXX XXXXXX XXXXXXX XXXXXX XXXXXXX XXXXXXX
Casos de prueba adicionales
Cortesía de la solución de referencia de Martin Büttner (tenga en cuenta que solo debe generar una sola coordenada, no todas):
Input: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Output: 4 2 2 3 3 2 6 4 2 2 2 5 2 2 2 6 7 5 7 0 6 4 6 0 5 3 5 10 4 9 9 6 3 8 3 6 2 7 2 6 2 5 2 4 2 4
Este es el código de golf. La presentación más corta gana.