La entrada consiste en i filas con información de vecinos. Cada i ª fila contiene 4 valores, lo que representa el vecino de i a los del Norte , Este , Sur y Oeste direcciones, respectivamente. Por lo que cada valor representa un vecino en la dirección dada de la i ª fila, a partir de la fila 1, y puede ir hasta 65.535 filas. El valor 0 indica que no hay vecino en esa dirección.
Por ejemplo, si la primera fila es "0 2 3 10" significa que el vecino i tiene otros tres vecinos: nadie al norte, vecino 2 al este, vecino 3 al sur y vecino 10 al oeste.
Debe generar la matriz de vecinos, comenzando por el valor que está más al noroeste. Cada vecino se mostrará solo una vez, en su posición con respecto a los demás. Veamos algunos ejemplos:
Entrada:
0 0 0 0
Sin vecinos (caso vacío), salida:
1
Entrada:
0 2 0 0
0 0 0 1
1 tiene vecino 2 al este. 2 tiene vecino 1 al oeste
Salida:
1 2
Entrada:
0 2 0 0
0 0 3 1
2 0 0 0
1 tiene vecino 2 al este. 2 tiene vecino 1 al oeste y 3 al sur. 3 tiene vecino 2 al norte
Salida:
1 2
3
Entrada:
2 0 0 0
0 0 1 0
Salida:
2
1
Entrada:
0 2 3 0
0 0 4 1
1 4 0 0
2 0 0 3
Salida:
1 2
3 4
Reglas:
Los casos de prueba están separados por una línea vacía . La salida de diferentes casos de prueba también debe estar separada por una línea vacía.- El gráfico de salida siempre está conectado. No va a tener 1 vecino solo para 2, junto con 3 vecinos solo para 4 (aislado del componente 1-2).
- Todas las entradas son válidas. Ejemplo de entradas inválidas:
- Entradas que contienen letras o cualquier símbolo diferente de espacios, saltos de línea y dígitos (0-9).
- el i ª fila que contiene el i ésimo valor (porque no se puede ser su propio vecino).
- Un valor negativo o superior a 65.535.
- Menos de cuatro valores seguidos.
- Más de cuatro valores seguidos.
- El mismo vecino apunta a dos direcciones diferentes (ej .: 0 1 1 0).
Se aplican las lagunas estándar y gana la respuesta más corta en bytes.
fuente
1,2,...
. Pensé que tenían un vecino 2 "unidades" al este, y 1 "unidad" al sur y así sucesivamente. No podría tener sentido.Respuestas:
Python 2 , 152 bytes
Pruébalo en línea!
El orden de entrada
NESW
f
es una función recursiva para poblar las casas.fuente
JavaScript (Node.js) , 135 bytes
Pruébalo en línea!
_______________________________________________________________
Segundo enfoque
JavaScript (Node.js) , 130 bytes
Pruébalo en línea!
fuente