#3553. 圆桌换牌
圆桌换牌
题目描述
名玩家围坐在圆桌旁。他们共有 张卡片,颜色有 种。初始时第一个人手里只有第 1 种颜色的卡片,第二个人只有第 2 种颜色的卡片,依此类推。他们可以按以下规则交换卡片:
- 交换时,一名玩家只能给出他自己颜色的卡片;
- 已持有某种颜色卡片的玩家不能再接受这种颜色(尤其地,无论他自己颜色的牌是否已全部送出,他都不能再拿回自己颜色的牌);
- 一次交换指一对玩家互相交换(每人给出一张、收到一张)。
所有 名玩家的目标是:每人都把自己最初拿到的卡片(即自己颜色的所有卡片)全部送出。请判断这样的交换序列是否存在。若存在,请列出所有交换。
输入格式
第一行包含整数 ()和 ()。第二行包含 个数,第 个数表示游戏开始时第 名玩家手里有多少张卡片。有可能某个玩家一开始就没有卡片。
输出格式
若这样的交换序列不存在,第一行输出 "No";否则输出 "Yes"。若答案为肯定,接着输出交换次数 ,然后在 行里用交换双方玩家的编号对来描述每次交换。交换的顺序与编号顺序可以任意。
4 8
2 2 2 2
Yes
4
4 3
4 2
1 3
1 2
6 12
1 1 2 2 3 3
Yes
6
6 5
6 4
6 3
5 4
5 3
2 1
5 5
0 0 0 0 5
No