As coordenadas no mundo da Terra plana consistem em latitude (x) e longitude (y), que são números inteiros no intervalo de 0 a 9999. Muito parecido com números inteiros gaussianos , mas eles sempre são escritos usando esta notação:
411S 370E
Ou seja, com S
ou N
anexado à latitude e / E
ou W
anexado à longitude, com espaço (s) entre os dois componentes.
Objetivo
Escreva um programa (não uma função) que leia duas coordenadas, separadas por espaços em branco, e produza sua soma. A primeira coordenada é um ponto de partida, a segunda é um deslocamento e a saída é a posição resultante.
Entrada / Saída
Como esse desafio é parcialmente sobre formatação, tentarei definir os formatos de entrada e saída sem ambiguidade.
O formato de entrada preferido possui 1 espaço entre os componentes de coordenadas, sem zeros à esquerda e um caractere de nova linha entre as duas coordenadas. O programa deve poder ler o formato preferido.
A saída pode conter qualquer quantidade de espaço em branco e zeros à esquerda. Se for diferente do formato de entrada preferido, o programa também deverá poder ler esse formato.
Apenas para esclarecer, a entrada não pode (não) conterá caracteres de formatação adicionais. Apenas espaços e novas linhas, quando necessário.
Pontuação
Esta é uma experiência sobre uma nova condição vencedora. Escolherei o vencedor aceitando uma resposta em algumas semanas. Se uma resposta melhor aparecer depois, alterarei a resposta aceita.
A pontuação do programa é sua contagem de bytes. O programa vencedor é menor que 400 bytes, possui o menor número de bytes, mas é escrito na linguagem de programação mais detalhada . Para determinar o vencedor:
- Remover programas com contagem de bytes 400 ou mais (eles podem participar, mas não podem vencer)
- Considere apenas o programa mais curto para cada linguagem de programação
- O programa mais longo vence
Os poliglotas competem contra programas em todos os idiomas em que são válidos (por exemplo, se um programa é válido em ambos bash
e sh
ele compete com programas em ambos os idiomas).
Casos de teste
Nos casos de teste, as duas primeiras linhas são a entrada e a terceira linha é a saída.
0S 0E
0S 0W
0N 0E
(a direção do zero não importa, tanto na entrada quanto na saída)
0S 9999E
9999N 9999W
9999N 0E
(valores máximos)
42S 314W
42N 2718W
0N 3032W
(a direção do zero não importa na saída)
5555N 8888W
7777S 0E
2222S 8888W
(sem valores negativos; mude a direção se precisar alterar o sinal)
0001N 4545W
0999N 5454W
1000N 9999W
(se o programa gerar zeros à esquerda e vários espaços, ele deverá ser capaz de lê-los; também deve poder ler entradas que não os contenham)
8888N 8888W
9999N 9999W
(entrada inválida - qualquer comportamento é aceitável, incluindo falha e loop infinito)