Introdução:
Em geral, normalmente falam de quatro dimensões: três dimensões espaciais para x
, y
e z
; e uma dimensão de tempo. Por causa deste desafio, no entanto, vamos dividir a dimensão de tempo em três bem: past
, present
, e future
.
Entrada:
Duas listas de entrada. Uma contendo x,y,z
coordenadas inteiras e uma contendo anos inteiros.
Resultado:
Uma das quatro saídas distintas e constantes de sua própria escolha. Um para indicar a saída space
; um para indicar a saída time
; um para indicar a saída both space and time
; e um para indicar a saída neither space nor time
.
Vamos indicar que fomos para as três dimensões espaciais se as diferenças das tuplas inteiras não forem 0 para todas as três dimensões.
Indicaremos que atingimos as três dimensões temporais se houver pelo menos um ano no passado, pelo menos um ano no futuro e pelo menos um ano igual ao ano atual (portanto, no presente).
Exemplo:
Entrada:
lista de coordenadas : lista de [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
anos:[2039, 2019, 2018, 2039, 2222]
Saída:
Constante paraspace
Por quê?
As x
coordenadas são [5,5,-6,5]
. Como eles não são todos iguais, passamos pela x
dimensão espacial.
As y
coordenadas são [7,3,3,7]
. Como eles não são todos iguais, também passamos pela y
dimensão espacial.
As z
coordenadas são [2,8,8,2]
. Como eles não são todos iguais, também passamos pela z
dimensão espacial.
O ano atual é 2018
. Não há anos antes disso, então não visitamos a past
dimensão do tempo.
Há um 2018
presente na lista de anos, então visitamos a present
dimensão do tempo.
Há vários anos acima 2018
( [2039, 2019, 2039, 2222]
), também visitamos a future
dimensão do tempo.
Como visitamos todas as três space
dimensões, mas apenas duas das três time
dimensões, a saída será apenas (a constante para) space
.
Regras do desafio:
- Você pode usar quaisquer quatro saídas distintas e constantes para os quatro estados possíveis.
- A entrada pode estar em qualquer formato razoável. A lista de coordenadas pode ser tuplas, listas internas / matrizes de tamanho 3, seqüências de caracteres, objetos etc. A lista de anos pode ser uma lista de objetos de data em vez de números inteiros, bem como se isso beneficiaria sua contagem de bytes.
- Você pode assumir que as
x,y,z
coordenadas serão inteiras; portanto, não é necessário manipular decimais de ponto flutuante. Qualquer um dosx
,y
, e / ouz
coordenadas podem ser valores negativos, no entanto. - Você não pode levar as listas de entrada encomendadas. As listas de entrada devem estar na ordem exibida nos casos de teste.
- Você pode assumir que todos os valores do ano estarão no intervalo
[0,9999]
; e você pode assumir que todas as coordenadas estão no intervalo[-9999,9999]
. - Se o seu idioma não tiver QUALQUER maneira de recuperar o ano atual, mas você ainda quiser fazer esse desafio, considere-o como uma entrada adicional e marque sua resposta como (não concorrente) .
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta com as regras de E / S padrão , para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código (ou seja, TIO ).
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.
Casos de teste:
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]
é bom (e [-9999,9999]
para as coordenadas é bem assim.