{"trustable":false,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027$$$$$$\u0027, right: \u0027$$$$$$\u0027, display: true},\n {left: \u0027$$$\u0027, right: \u0027$$$\u0027, display: false},\n {left: \u0027$$\u0027, right: \u0027$$\u0027, display: true},\n {left: \u0027$\u0027, right: \u0027$\u0027, display: false}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003eValera 有一个无向连通图,不含自环和重边,由 $$$n$$$ 个顶点组成。这个图有一个有趣的特性:与每个顶点相邻的边不超过 $$$k$$$ 条。为方便起见,我们假设图的顶点编号用从 $$$1$$$ 到 $$$n$$$ 的整数表示。\u003c/p\u003e\n\n\u003cp\u003e一天,Valera 计算了从图中一个顶点到其他所有顶点的各最短距离,并将它们写在数组 $$$d$$$ 中。因此,数组元素 $$$d[i]$$$ 表示 Valera 选中的顶点到编号为 $$$i$$$ 的顶点之间的最短距离。\u003c/p\u003e\n\n\u003cp\u003e然后,无法挽回的可怕事情发生了。Valera 丢失了最初的图。然而,他仍然拥有数组 $$$d$$$ 。请帮助他恢复丢失的图。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e第一行包含两个整数 $$$n,k$$$ $$$(1 \\leq k \\lt n \\leq 10^5)$$$。整数 $$$n$$$ 表示最初的图中的顶点数量。整数 $$$k$$$ 显示了最初的图中,与每个顶点相邻的边不超过 $$$k$$$ 条。\u003c/p\u003e\n\n\u003cp\u003e第二行包含整数 $$$d[1],d[2],\\dots, d[n]$$$ $$$(0 \\leq d[i] \\lt n)$$$。整数 $$$d[i]$$$ 表示从 Valera 选中的顶点到编号为 $$$i$$$ 的顶点之间的最短距离。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e如果 Valera 在他的笔记中犯了错误,所需图形不存在,则在第一行打印 -1。\u003c/p\u003e\n\n\u003cp\u003e否则,在第一行打印整数 $$$m$$$ $$$(0 \\leq m \\leq 10^6)$$$,表示找到的图中的边数。接下来 $$$m$$$ 行,每行打印两个整数 $$$a_i,b_i$$$ $$$(1 \\leq a_i,b_i \\leq n;~a_i \\ne b_i)$$$,表示连接顶点 $$$a_i$$$ 和 $$$b_i$$$ 的边。图中不应包含自环和重边。若存在多种答案,请打印其中任意一种。\u003c/p\u003e"}},{"title":"示例 1","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 2\n0 1 1\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\n1 2\n1 3\n3 2\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"示例 2","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e4 2\n2 0 1 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\n1 3\n1 4\n2 3\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"示例 3","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 1\n0 0 0\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e-1\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}