Dada uma lista não classificada de números inteiros positivos únicos, produza a lista mais curta dos intervalos mais longos possíveis de números inteiros seqüenciais.
ENTRADA
- Uma lista não classificada de números inteiros positivos únicos
- por exemplo
9 13 3 11 8 4 10 15
- por exemplo
- A entrada pode ser obtida de qualquer um dos seguintes:
stdin- argumentos da linha de comando
- argumentos de função
RESULTADO
- Uma lista ordenada de intervalos ou valores individuais impressos em uma linha para stdout ou a saída semelhante mais próxima do seu idioma.
- Se dois ou mais números inteiros sequenciais (sequenciais por valor, não por localização na lista) estiverem presentes, eles serão indicados como um intervalo inclusivo usando -, por exemplo,
8-11 - Todos os outros números inteiros são simplesmente impressos sem outra notação
- Um único espaço delimitará a saída
- Se dois ou mais números inteiros sequenciais (sequenciais por valor, não por localização na lista) estiverem presentes, eles serão indicados como um intervalo inclusivo usando -, por exemplo,
- Os números que não estão presentes na entrada não devem estar na saída, por exemplo,
3 5 6não podem ser encurtados3-6porque4não estão presentes
EXEMPLOS
Bem sucedido:
IN> 9 13 3 11 8 4 10 15 6
OUT> 3-4 6 8-11 13 15
IN> 11 10 6 9 13 8 3 4 15
OUT> 3-4 6 8-11 13 15
IN> 5 8 3 2 6 4 7 1
OUT> 1-8
IN> 5 3 7 1 9
OUT> 1 3 5 7 9
Errado:
IN> 9 13 3 11 8 4 10 15
OUT> 3-15
O intervalo contém valores que não estão na entrada
IN> 9 13 3 11 8 4 10 15
OUT> 3 4 8 9 10 11 13 15
Todos os valores sequenciais devem ser representados como um intervalo
IN> 9 13 3 11 8 4 10 15
OUT> 3-4 8-9 10-11 13 15
Alcance dividido 8-9e 10-11deve ser8-11
IN> 9 13 3 11 8 4 10 15
OUT> 8-9 13 10-11 3-4 15
Saída não solicitada corretamente
REGRAS
- As brechas padrão não são permitidas
- Se seu idioma tem uma função para fazer isso, não é permitido
- Você pode escrever um programa completo ou uma função
- espaço em branco à direita não importa
PONTUAÇÃO
- Menos bytes ganhos