#ARC159C. 排列加法

排列加法

排列加法

时间限制:2s
空间限制:512MB

题目描述

给定一个长度为 NN 的正整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。

你可以进行至多 10410^4 次操作。每次操作选择一个 11 到 NN 的排列 P=(P1,P2,…,PN)P=(P_1,P_2,\ldots,P_N),并同时令每个 AiA_i 加上 PiP_i。

请判断能否通过若干次操作使 AA 的所有元素相等。若可以,请构造任意一种合法的操作方案。

输入格式

第一行一个整数 NN。

第二行 NN 个整数 A1,A2,…,ANA_1,A_2,\ldots,A_N。

输出格式

若无法使所有元素相等,输出一行 No。

若可以,第一行输出 Yes,第二行输出操作次数 MM,接下来 MM 行每行输出一个 11 到 NN 的排列,表示依次进行的操作。必须满足 0≤M≤1040\le M\le10^4。

若有多种合法方案,输出任意一种即可。

样例输入 1

2
15 9

样例输出 1

Yes
8
1 2
1 2
1 2
1 2
2 1
1 2
1 2
1 2

样例输入 2

5
1 2 3 10 10

样例输出 2

No

样例输入 3

4
1 1 1 1

样例输出 3

Yes
0

数据范围

对于所有数据,2≤N≤502\le N\le50,1≤Ai≤501\le A_i\le50。记 S=∑i=1NAiS=\sum_{i=1}^{N}A_i。

子任务编号 分值 特殊限制
1 10 N=2N=2
2 15 NN 为偶数,且 AA 是 11 到 NN 的排列
3 20 NN 为偶数,且 SS 是 NN 的倍数
4 25 NN 为奇数
5 30 无特殊限制