#P16368. [2026年山东第二轮集训]如何彻底消失

[2026年山东第二轮集训]如何彻底消失

题目描述

一棵仙人掌是一张无向简单连通图,其中每条边都属于至多一个简单环。

ヒカル给了你一个正整数序列

d1,d2,,dn,d_1,d_2,\ldots,d_n,

请构造一棵以 {1,2,,n}\{1,2,\ldots,n\} 为点集的仙人掌,使得点 ii 的度数为 did_i;或者报告这样的仙人掌不存在。

输入格式

第一行包含一个正整数 nn

第二行包含 nn 个正整数 d1,d2,,dnd_1,d_2,\ldots,d_n

输出格式

如果不存在满足条件的仙人掌,输出 -1

否则,第一行输出一个正整数 mm,表示所构造仙人掌的边数。

接下来 mm 行,每行包含两个正整数 u,vu,v,表示点 uu 和点 vv 之间存在一条无向边。

样例 1

输入

6
2 5 2 2 2 1

输出

7
1 2
1 3
2 3
2 4
4 5
2 5
2 6

数据范围

对于全部测试数据:

2n2000,1di<n.2\le n\le 2000,\qquad 1\le d_i<n.
子任务编号 特殊性质 分值
1 n8n\le 8 24
2 存在一棵树满足条件 12
3 存在一棵基环树满足条件
4 所有 did_i 均为偶数
5 恰好有两个 did_i 是奇数 16
6 无特殊限制 24