EduBrick

I. Построить граф по степеням

3000 мс · 256 МБ · всё или ничего

Дана последовательность из nn чисел. Постройте простой неориентированный граф, у которого степень вершины ii равна ii-му числу, или сообщите, что такого графа нет.

Строить надо тем же способом, которым в классе проверяли существование: взять вершину наибольшей степени и соединить её с вершинами наибольших оставшихся степеней. Чтобы ответ был единственным, при равных степенях берите вершину с меньшим номером.

Рёбра выводите в лексикографическом порядке пар, каждое ребро — один раз, с меньшим номером первым.

Формат ввода

Первая строка содержит число nn (1≤n≤3001 \le n \le 300).

Вторая строка содержит nn целых чисел от 0 до 300 — искомые степени.

Формат вывода

Если графа не существует, выведите −1-1.

Иначе в первой строке выведите количество рёбер, далее по одному ребру на строке.

Примеры

ввод
4
3 3 3 3
вывод
6
1 2
1 3
1 4
2 3
2 4
3 4
ввод
4
3 3 3 1
вывод
-1
Войдите, чтобы отправлять решения.