P8103 「LCOI2022」 Cow Merger
题目背景
Bessie 来到她的新家之后,Farmer John 突然意识到自己农场的大小不够了!
所以,Farmer John 需要把所有的奶牛合并到一个牛棚里。
题目描述
Farmer John 的农场里本来有 $n$ 个牛棚,第 $i$ 个牛棚里住着 $a_i$ 只牛。
我们定义一次合并 $i,j(a_i\ge a_j)$ 两个牛棚的操作为:从 $i$ 号牛棚中拿出 $a_j$ 头牛,放入 $j$ 号牛棚中。如果在合并结束后 $a_i=0$,那么可以看做 $a_i$ 被合并了,接下来的操作也与 $a_i$ 无关。
由于时间不够了,他决定最多你 $1$ 秒的时间。
输入格式
第一行包含一个整数 $T$,表示数据组数。
对于第 $t$ 组数据:
第 $2t$ 行包含一个整数 $n$。
第 $2t+1$ 行包含 $n$ 个整数,第 $i$ 个整数为 $a_i$。
输出格式
对于每组数据:
如果你发现自己不可能达到目标,输出 `NO`,否则输出 `YES`。
接下来一行,输出一个整数 $m$ 表示操作次数。
接下来 $m$ 行,每行输出两个数 $i$ 和 $j$(注意操作时应满足 $a_i \ge a_j$)。
**有多解时可输出任意一组解。**
说明/提示
【数据范围与约定】
对于 $100\%$ 的数据,$1 \leq T \leq 5$,$1 \leq n \leq 10^5$,$0 \leq a_i \leq 10^9$。