Codeforces Round 237 (Div. 2)
C
Restore Graph
Codeforces
1800
原题
← BD →
翻译中…

Valera had an undirected connected graph without self-loops and multiple edges consisting of $*n*$ vertices. The graph had an interesting property: there were at most $*k*$ edges adjacent to each of its vertices. For convenience, we will assume that the graph vertices were indexed by integers from 1 to $*n*$.

翻译中…

One day Valera counted the shortest distances from one of the graph vertices to all other ones and wrote them out in array $*d*$. Thus, element $*d*[*i*]$ of the array shows the shortest distance from the vertex Valera chose to vertex number $*i*$.

翻译中…

Then something irreparable terrible happened. Valera lost the initial graph. However, he still has the array $*d*$. Help him restore the lost graph.

翻译中…

Input

翻译中…

The first line contains two space-separated integers $*n*$ and $*k*$ $(1 ≤ *k* < *n* ≤ 10^{5})$. Number $*n*$ shows the number of vertices in the original graph. Number $*k*$ shows that at most $*k*$ edges were adjacent to each vertex in the original graph.

翻译中…

The second line contains space-separated integers $*d*[1], *d*[2], ..., *d*[*n*]$ $(0 ≤ *d*[*i*] < *n*)$. Number $*d*[*i*]$ shows the shortest distance from the vertex Valera chose to the vertex number $*i*$.

翻译中…

Output

翻译中…

If Valera made a mistake in his notes and the required graph doesn't exist, print in the first line number -1. Otherwise, in the first line print integer $*m*$ $(0 ≤ *m* ≤ 10^{6})$ — the number of edges in the found graph.

翻译中…

In each of the next $*m*$ lines print two space-separated integers $*a*_{*i*}$ and $*b*_{*i*}$ $(1 ≤ *a*_{*i*}, *b*_{*i*} ≤ *n*; *a*_{*i*} ≠ *b*_{*i*})$, denoting the edge that connects vertices with numbers $*a*_{*i*}$ and $*b*_{*i*}$. The graph shouldn't contain self-loops and multiple edges. If there are multiple possible answers, print any of them.

翻译中…

样例

Input #1
3 2
0 1 1
Output #1
3
1 2
1 3
3 2
InputCopy OutputCopy
Input #2
4 2
2 0 1 3
Output #2
3
1 3
1 4
2 3
InputCopy OutputCopy
Input #3
3 1
0 0 0
Output #3
-1
InputCopy OutputCopy
题目信息
题号
404C
时间限制
1 s
内存限制
256 MB
标签
DFS 及类似
图论
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。