AT_pakencamp_2022_day3_d Yet Another Balls and Boxes Problem

Description

ここに $ N $ 個の箱があり、箱 $ i $ には $ A_i $ 個のボールが入っています。あなたは、以下の操作を $ 0 $ 回以上 $ 2 \times 10^6 $ 回以下行うことができます。 - 整数対 $ (X,Y)(X \neq Y) $ であって、「箱 $ X $ に入っているボールの個数」が「箱 $ Y $ に入っているボールの個数」以下であるものを選ぶ。 そして、箱 $ X $ に入っているボールの数だけ箱 $ Y $ から箱 $ X $ にボールを移す。 一つの箱にすべてのボールが入っている状態にできるか判定し、可能ならば操作列を一つ構築してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

すべてのボールが一つの箱に入っている状態にすることが不可能ならば `No` と出力せよ。可能な場合、操作回数を $ M $ 、 $ i $ 回目に選んだ $ (X,Y) $ を $ (P_i,Q_i) $ として以下の形式で出力せよ。 > Yes $ M $ $ P_1 $ $ Q_1 $ $ P_2 $ $ Q_2 $ $ \vdots $ $ P_M $ $ Q_M $ 条件を満たす解が複数存在する場合、どれを出力しても正解とみなされる。

Explanation/Hint

### Sample Explanation 1 以下のように操作が行われます。 1. 箱 $ 2 $ から箱 $ 1 $ にボールを $ 1 $ つ移す。 2. 箱 $ 1 $ から箱 $ 2 $ にボールを $ 2 $ つ移す。 3. 箱 $ 2 $ から箱 $ 3 $ にボールを $ 4 $ つ移す。 最終的に箱 $ 3 $ にボールが $ 8 $ つ入っている状態になります。 なお、たとえば次のような出力も正解とみなされます。 ``` Yes 3 1 2 1 2 1 3 ``` ### Sample Explanation 2 $ 2\times 10^6 $ 回以内の操作では一つの箱にすべてのボールが入っている状態にできないことが証明できます。 ### Constraints - $ 2 \le N \le 10^5 $ - $ 1 \le A_i \le 10^5 $ - 入力は全て整数