Biorąc pod uwagę nieposortowaną listę unikatowych, dodatnich liczb całkowitych, wypisz najkrótszą listę z najdłuższych możliwych zakresów liczb całkowitych sekwencyjnych.
WEJŚCIE
- Nieposortowana lista unikalnych, dodatnich liczb całkowitych
- na przykład
9 13 3 11 8 4 10 15
- na przykład
- Dane wejściowe można pobrać z jednego z poniższych:
stdin- argumenty wiersza poleceń
- argumenty funkcji
WYNIK
- Uporządkowana lista zakresów lub poszczególnych wartości drukowana w jednym wierszu na standardowe wyjście lub najbliższy podobny wynik w twoim języku.
- Jeśli obecne są dwie lub więcej kolejnych liczb całkowitych (sekwencyjnych według wartości, a nie według lokalizacji na liście), zostaną one oznaczone jako zakres obejmujący za pomocą -, np.
8-11 - Wszystkie inne liczby całkowite są po prostu drukowane bez żadnej innej notacji
- Pojedyncza spacja ograniczy wynik
- Jeśli obecne są dwie lub więcej kolejnych liczb całkowitych (sekwencyjnych według wartości, a nie według lokalizacji na liście), zostaną one oznaczone jako zakres obejmujący za pomocą -, np.
- Liczby nieobecne na wejściu nie powinny znajdować się na wyjściu, np.
3 5 6Nie można ich skrócić,3-6ponieważ4nie jest obecny
PRZYKŁADY
Odnoszący sukcesy:
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
Źle:
IN> 9 13 3 11 8 4 10 15
OUT> 3-15
Zakres zawiera wartości, których nie ma na wejściu
IN> 9 13 3 11 8 4 10 15
OUT> 3 4 8 9 10 11 13 15
Wszystkie kolejne wartości powinny być reprezentowane jako zakres
IN> 9 13 3 11 8 4 10 15
OUT> 3-4 8-9 10-11 13 15
Podzielony zakres 8-9i 10-11powinien być8-11
IN> 9 13 3 11 8 4 10 15
OUT> 8-9 13 10-11 3-4 15
Wyjście nie zostało poprawnie zamówione
ZASADY
- Standardowe luki są niedozwolone
- Jeśli Twój język ma taką funkcję, jest to niedozwolone
- Możesz napisać pełny program lub funkcję
- końcowe białe znaki nie mają znaczenia
PUNKTACJA
- Najmniej bajtów wygrywa