说明
给定 1 个长度为 n 的序列 a,有如下操作:
- 每次选择 2 个位置 i,j,将 ai 和 aj 均减 1。如果 i=j,则 ai 值只减 1 次。
问将 a 序列全部减为 0 所需的最少次数,并输出字典序最小的方案。
注:字典序最小的方案是指将所有输出的数拼接成一个序列,且使得该序列字典序尽可能小。
输入格式
第一行,一个正整数 n, 表示数列的长度。
第二行,包含 n 个非负整数 ai,表示 a 序列。
输出格式
第一行,一个整数 k 表示最少的操作次数。
接下来 k 行,输出字典序最小的方案。每行 2 个整数 i,j,表示一次操作。
4
3 1 3 5
6
1 2
1 4
1 4
3 4
3 4
3 4
提示
对于 100% 的数据,1≤n≤105,1≤∑i=1nai≤106,ai≥0。
注意: ai 有可能等于 0。
| 测试点 |
特殊性质 |
| 1 |
1≤n≤6,1≤ai≤6 |
| 2 |
∀i∈(1,n],ai≤ai−1 |
| 3∼10 |
1≤n≤105,1≤∑i=1nai≤106 |