Dato un elenco non ordinato di numeri interi unici e positivi, genera l'elenco più breve degli intervalli più lunghi possibili di numeri interi sequenziali.
INGRESSO
- Un elenco non ordinato di numeri interi unici e positivi
- per esempio
9 13 3 11 8 4 10 15
- per esempio
- L'input può essere preso da uno dei seguenti:
stdin- argomenti della riga di comando
- argomenti di funzione
PRODUZIONE
- Un elenco ordinato di intervalli o singoli valori stampati su una riga su stdout o sull'output simile più vicino alla tua lingua.
- Se sono presenti due o più numeri interi sequenziali (sequenziali per valore, non per posizione nell'elenco), saranno indicati come un intervallo inclusivo usando -, ad es.
8-11 - Tutti gli altri numeri interi vengono semplicemente stampati senza altra notazione
- Un singolo spazio delimiterà l'output
- Se sono presenti due o più numeri interi sequenziali (sequenziali per valore, non per posizione nell'elenco), saranno indicati come un intervallo inclusivo usando -, ad es.
- I numeri non presenti nell'input non dovrebbero essere nell'output, ad es.
3 5 6Non possono essere abbreviati3-6perché4non presenti
ESEMPI
Riuscito:
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
Sbagliato:
IN> 9 13 3 11 8 4 10 15
OUT> 3-15
L'intervallo contiene valori non presenti nell'input
IN> 9 13 3 11 8 4 10 15
OUT> 3 4 8 9 10 11 13 15
Tutti i valori sequenziali devono essere rappresentati come un intervallo
IN> 9 13 3 11 8 4 10 15
OUT> 3-4 8-9 10-11 13 15
Diviso intervallo, 8-9e 10-11dovrebbe essere8-11
IN> 9 13 3 11 8 4 10 15
OUT> 8-9 13 10-11 3-4 15
Uscita non ordinata correttamente
REGOLE
- Le scappatoie standard non sono ammesse
- Se la tua lingua ha una funzione per farlo, non è permesso
- È possibile scrivere un programma completo o una funzione
- gli spazi bianchi finali non contano
PUNTEGGIO
- Vince il minimo byte