#1. 均分纸牌
均分纸牌
题目描述
有 堆纸牌,编号分别为 。每堆上有若干张,但纸牌总数必为 的倍数。可以在任一堆上取若干张纸牌,然后移动。
移牌规则为:在编号为 堆上取的纸牌,只能移到编号为 的堆上;在编号为 的堆上取的纸牌,只能移到编号为 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。
例如 堆纸牌数分别为 。
移动 次可达到目的:
- 从第二堆取 张移动到第一堆:
- 从第三堆取 张移动到第二堆:
- 从第三堆取 张移动到第四堆:
请你首先求出最少的移动次数 ,然后输出 行代表一个合法方案,每行3个整数 代表从第 堆取 张移动到第 堆。
在移动过程中始终保证所有 ,若有多解输出字典序最小的。
输入格式
第一行一个整数 。
第二行 个整数 。
输出格式
第一行输出一个整数 代表最小移动次数;
接下来 行,每行 个整数 代表一次移动。
你需要保证方案合法。
样例
4
9 8 17 6
3
2 1 1
3 2 3
3 4 4
5
134 10 8 54 4
4
1 2 92
2 3 60
3 4 26
4 5 38
4
0 0 0 4
3
4 3 3
3 2 2
2 1 1
4
0 0 4 0
3
3 2 2
2 1 1
3 4 1
数据范围
对于 的数据,;
对于 的数据,;
对于 的数据,保证 , 是 的倍数。
注意采用快速的输入和输出方式。