P12227 「WyOJ Round 1」炽 · 踏浪而歌
题目背景
> 新丰美酒斗十千,咸阳游侠多少年。相逢意气为君饮,系马高楼垂柳边。
>
> ——王维《少年行》
题目描述
给定 $1$ 个长度为 $n$ 的序列 $a$,有如下操作:
* 每次选择 $2$ 个位置 $i,j$,将 $a_i$ 和 $a_j$ 均减 $1$。如果 $i=j$,则 $a_i$ 值只减 $1$ 次。
问将 $a$ 序列全部减为 $0$ 所需的最少次数,并输出**字典序最小**的方案。
注:字典序最小的方案是指将所有输出的数拼接成一个序列,且使得该序列字典序尽可能小。
输入格式
第一行,一个正整数 $n$, 表示数列的长度。
第二行,包含 $n$ 个非负整数 $a_i$,表示 $a$ 序列。
输出格式
第一行,一个整数 $k$ 表示最少的操作次数。
接下来 $k$ 行,输出**字典序最小**的方案。每行 $2$ 个整数 $i,j$,表示一次操作。
说明/提示
对于 $100\%$ 的数据,$1\le n\le 10^5$,$1\le \sum_{i=1}^n a_i\le 10^6$,$a_i\ge 0$。
**注意:** $a_i$ 有可能等于 $0$。
| 测试点 | 特殊性质 |
| :-----------: | :-----------: |
| $1$ | $1\le n\le 6$,$1\le a_i\le 6$ |
| $2$ | $\forall i\in (1,n], a_i\le a_{i-1}$ |
| $3\sim 10$ | $1\le n\le 10^5$,$1\le \sum_{i=1}^n a_i\le 10^6$ |