Учитывая несортированный список уникальных положительных целых чисел, выведите кратчайший список самых длинных возможных диапазонов последовательных целых чисел.
ВХОД
- Несортированный список уникальных, положительных целых чисел
- например
9 13 3 11 8 4 10 15
- например
- Ввод может быть взят из любого из следующих:
stdin
- аргументы командной строки
- аргументы функции
ВЫХОД
- Упорядоченный список диапазонов или отдельных значений напечатан в одну строку на стандартный вывод или ближайший аналогичный вывод вашего языка.
- Если присутствуют два или более последовательных целых числа (последовательно по значению, а не по местоположению в списке), они будут обозначаться как включающий диапазон с использованием -, например,
8-11
- Все остальные целые числа просто печатаются без других обозначений
- Один пробел будет ограничивать вывод
- Если присутствуют два или более последовательных целых числа (последовательно по значению, а не по местоположению в списке), они будут обозначаться как включающий диапазон с использованием -, например,
- Числа, отсутствующие на входе, не должны быть на выходе, например,
3 5 6
не могут быть сокращены до,3-6
потому что4
нет
ПРИМЕРЫ
Успешная:
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
Неправильно:
IN> 9 13 3 11 8 4 10 15
OUT> 3-15
Диапазон содержит значения, не входные
IN> 9 13 3 11 8 4 10 15
OUT> 3 4 8 9 10 11 13 15
Все последовательные значения должны быть представлены в виде диапазона
IN> 9 13 3 11 8 4 10 15
OUT> 3-4 8-9 10-11 13 15
Разделенный диапазон, 8-9
и 10-11
должен быть8-11
IN> 9 13 3 11 8 4 10 15
OUT> 8-9 13 10-11 3-4 15
Выход не упорядочен правильно
ПРАВИЛА
- Стандартные лазейки запрещены
- Если на вашем языке есть функция, это не разрешено
- Вы можете написать полную программу или функцию
- конечный пробел не имеет значения
SCORING
- Наименьшее количество байтов выигрывает