Introdução:
Em geral, normalmente falam de quatro dimensões: três dimensões espaciais para x, ye 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,zcoordenadas 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 xcoordenadas são [5,5,-6,5]. Como eles não são todos iguais, passamos pela xdimensão espacial.
As ycoordenadas são [7,3,3,7]. Como eles não são todos iguais, também passamos pela ydimensão espacial.
As zcoordenadas são [2,8,8,2]. Como eles não são todos iguais, também passamos pela zdimensão espacial.
O ano atual é 2018. Não há anos antes disso, então não visitamos a pastdimensão do tempo.
Há um 2018presente na lista de anos, então visitamos a presentdimensão do tempo.
Há vários anos acima 2018( [2039, 2019, 2039, 2222]), também visitamos a futuredimensão do tempo.
Como visitamos todas as três spacedimensões, mas apenas duas das três timedimensõ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,zcoordenadas serão inteiras; portanto, não é necessário manipular decimais de ponto flutuante. Qualquer um dosx,y, e / ouzcoordenadas 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.