Introducción:
En general solemos hablar de cuatro dimensiones: tres dimensiones espaciales para x
, y
y z
; y una dimensión de tiempo. Por el bien de este reto, sin embargo, vamos a dividir la dimensión temporal en tres así: past
, present
, y future
.
Entrada:
Dos listas de entrada. Uno que contiene x,y,z
coordenadas enteras y otro que contiene años enteros
Salida:
Una de las cuatro salidas distintas y constantes de su elección. Uno para indicar la salida space
; uno para indicar la salida time
; uno para indicar la salida both space and time
; y uno para indicar la salida neither space nor time
.
Indicaremos que fuimos a las tres dimensiones espaciales si las diferencias de las tuplas enteras no son 0 para las tres dimensiones.
Indicaremos que fuimos a las tres dimensiones de tiempo si hay al menos un año en el pasado, al menos un año en el futuro y al menos un año igual al año actual (por lo tanto, en el presente).
Ejemplo:
Entrada:
Lista de coordenadas: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Lista de años:[2039, 2019, 2018, 2039, 2222]
Salida:
constante paraspace
¿Por qué?
Las x
coordenadas son [5,5,-6,5]
. Como no son todos iguales, hemos pasado por la x
dimensión espacial.
Las y
coordenadas son [7,3,3,7]
. Como no son todos iguales, también hemos pasado por la y
dimensión espacial.
Las z
coordenadas son [2,8,8,2]
. Como no son todos iguales, también hemos pasado por la z
dimensión espacial.
El año actual es 2018
. No hay años antes de esto, por lo que no visitamos la past
dimensión del tiempo.
Hay un 2018
regalo en la lista de años, así que visitamos la present
dimensión del tiempo.
Hay varios años arriba 2018
( [2039, 2019, 2039, 2222]
), por lo que también visitamos la future
dimensión del tiempo.
Como hemos visitado las tres space
dimensiones, pero solo dos de las tres time
dimensiones, la salida solo será (la constante para) space
.
Reglas de desafío:
- Puede usar cuatro salidas distintas y constantes para los cuatro estados posibles.
- La entrada puede estar en cualquier formato razonable. La lista de coordenadas puede ser tuplas, listas internas / matrices de tamaño 3, cadenas, objetos, etc. La lista de años puede ser una lista de objetos de fecha en lugar de números enteros también si beneficiaría su recuento de bytes.
- Puede suponer que las
x,y,z
coordenadas serán enteras, por lo que no es necesario manejar decimales de coma flotante. Cualquiera de losx
,y
, y / oz
coordenadas pueden ser valores negativos, sin embargo. - No puede tomar las listas de entrada pre ordenadas. Las listas de entrada deben estar en el orden que se muestra en los casos de prueba.
- Puede asumir que todos los valores del año estarán en el rango
[0,9999]
; y puede asumir que todas las coordenadas están en el rango[-9999,9999]
. - Si su idioma no tiene NINGUNA forma de recuperar el año en curso, pero aún así le gustaría hacer este desafío, puede tomarlo como entrada adicional y marcar su respuesta como (no competitiva) .
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
Coordinates-input: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Years-input: [2039, 2019, 2018, 2039, 2222]
Output: space
Coordinates-input: [{0,0,0}, {-4,-4,0}, {-4,2,0}]
Years-input: [2016, 2019, 2018, 2000]
Output: time
Coordinates-input: [{-2,-2,-2}, {-3,-3,-3}]
Years-input: [2020, 1991, 2014, 2018]
Output: both
Coordinates-input: [{5,4,2}, {3,4,0}, {1,4,2}, {9,4,4}]
Years-input: [2020, 1991, 2014, 2017, 2019, 1850]
Output: neither
[0,9999]
está bien (y [-9999,9999]
para las coordenadas también está bien.)