fundo
Inúmeras gerações de crianças se perguntam onde iriam parar se cavassem um buraco diretamente para baixo. Acontece que isso seria, sem surpresa, bastante perigoso , mas de qualquer maneira ...
Antípodas são pontos diretamente opostos um ao outro na superfície da Terra. Isso significa que se uma linha fosse traçada entre os dois pontos, ela passaria pelo centro da Terra.
Desafio
Escreva um programa ou função que, dado um ponto, encontre seu antípoda.
Neste desafio, os pontos são representados usando o sistema longitude-latitude e graus, minutos de arco e segundos de arco. Para encontrar o antípoda, troque as direções de cada ordenada ( N <-> Se W <-> E) e subtraia a ordenada da longitude de 180graus.
Exemplo:
Entenda N 50 26 23 W 4 18 29. Troque as instruções para dar S 50 26 23 E 4 18 29. Subtraia a ordenada de longitude de 180 0 0para dar 175 41 31, deixando as coordenadas do antípoda como S 50 26 23 E 175 41 31.
Regras
Entrada
Um conjunto de coordenadas de latitude-longitude, em qualquer formato razoável , em que cada ordenada contém uma direção, um número de graus, um número de minutos de arco e um número de segundos de arco.
Saída
As coordenadas de latitude e longitude do antípoda, em qualquer formato razoável , em que cada ordenada contém uma direção, um número de graus, um número de minutos do arco e um número de segundos do arco.
Por razoável, significa que cada parte da coordenada pode ser distinguida sem ambiguidade.
Especificações
- A direção da ordenada da latitude é
NouS, e a da ordenada da longitude éWouE. - Todos os valores de coordenadas são inteiros. O valor do grau será entre
0e90para latitude e entre0e180para longitude. Os valores de minuto do arco e segundo do arco para as duas ordenadas estarão entre0e59. - Se todos os valores de uma ordenada forem
0, qualquer direção é aceitável. - Não é necessário zerar nenhum valor.
- Nenhuma ordenada de latitude será maior que
90graus, e nenhuma ordenada de longitude será maior que180graus. - Aplicam-se brechas padrão .
Casos de teste
N 50 26 23 W 4 18 29 -> S 50 26 23 E 175 41 31
S 43 9 9 E 0 0 5 -> N 43 9 9 W 179 59 55
N 0 0 0 E 0 0 0 -> S/N 0 0 0 W/E 180 0 0 (either direction fine in each case)
S 1 2 3 W 4 5 6 -> N 1 2 3 E 175 54 54
S 9 21 43 W 150 7 59 -> N 9 21 43 E 29 52 1
S 27 40 2 W 23 0 0 -> N 27 40 2 E 157 0 0
N 0 58 37 W 37 0 0 -> S 0 58 37 E 143 0 0
Links Úteis
Isso é código-golfe , então a resposta mais curta em bytes vence!
N, S, E, ou Wcomo uma direção, enquanto o redundantes 0introduz ambiguidade quanto ao que valor representa qual componente da ordenada.