[求助]请哪位大侠看看有没有这题的解答啊 谢谢啊
Lance博士目前正在被他的资料所困扰,事情是这样的: Lance博士一直致力于无向简单图性质的研究,他把他曾经研究过的图都用图的度序列纪录下来,无向简单图上的一个顶点所连的边的个数称为该顶点的度,所有顶点的度排列在一起构成图的度序列。例如图1的度序列就可以是:(2,1,1,3,1),度序列内部是没有顺序关系的,即图1的度序列同样可以表示成(1,2,3,1,1)。然后不久前,Lance博士的助手不小心将部分其他的数字序列混入到这些度序列纪录中,Lance博士无法分辨哪些是他原来的纪录,他于是聘请你帮他编写一个程序来辨别哪些数字序列是真正的度序列,即存在符合这个度序列的无向简单图。
输入文件:
输入文件一共两行。
第一行是一个整数T(1≤T≤10000),。
第二行一共有T个整数,a1,a2,……aT,(a1,a2,……aT)即为一个数字序列。数字序列已按降序排列。(1≤ai≤25) 。
输出文件:
如果该数字序列不是度序列,只需在第一行输出“No!”;
如果该数字序列是一个度序列,首先在第一行输出“Yes!”;然后在接下来的若干行里输出一个符合该度序列的图所有边,每行一条边。
我们默认一个图的顶点编号为1至T,如果顶点i与j之间有一条边,我们表示为“i j”。例如图一就可以表示为:
1 3
2 4
3 4
4 5
输入样例1:
5
3 2 1 1 1
输出样例1:
Yes!
1 3
2 4
3 4
3 5
输入样例2:
4
3 3 1 1
输出样例2:
No!
说明:若连接结点之间的边可以不止一条,这样的图称为多重图。一个结点如果有指向自己的边,这条边被称为自环。无向简单图是指无自环的非多重图。