I. Построить граф по степеням
3000 мс · 256 МБ · всё или ничего
Дана последовательность из чисел. Постройте простой неориентированный граф, у которого степень вершины равна -му числу, или сообщите, что такого графа нет.
Строить надо тем же способом, которым в классе проверяли существование: взять вершину наибольшей степени и соединить её с вершинами наибольших оставшихся степеней. Чтобы ответ был единственным, при равных степенях берите вершину с меньшим номером.
Рёбра выводите в лексикографическом порядке пар, каждое ребро — один раз, с меньшим номером первым.
Формат ввода
Первая строка содержит число ().
Вторая строка содержит целых чисел от 0 до 300 — искомые степени.
Формат вывода
Если графа не существует, выведите .
Иначе в первой строке выведите количество рёбер, далее по одному ребру на строке.
Примеры
ввод
4 3 3 3 3
вывод
6 1 2 1 3 1 4 2 3 2 4 3 4
ввод
4 3 3 3 1
вывод
-1
Войдите, чтобы отправлять решения.