atcoder#DIVERTA20192C. Successive Subtraction

Successive Subtraction

配点 : 500500

問題文

黒板に A1,A2,...,ANA_1, A_2, ..., A_NNN 個の整数が書かれています。

以下の操作を N1N-1 回繰り返して黒板にただ 11 つの整数が書かれているようにします。

  • 22 個の整数 x,yx, y を選んで消し、新たに 11 個の整数 xyx-y を書く。

ただ 11 つ残る整数としてありうる値の最大値と、その最大値を達成する操作列を求めてください。

制約

  • 2N1052 \leq N \leq 10^5
  • 104Ai104-10^4 \leq A_i \leq 10^4
  • 入力は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

NN

A1A_1 A2A_2 ...... ANA_N

出力

ただ 11 つ残る整数としてありうる値の最大値 MM と、その最大値を達成する操作列 xi,yix_i, y_i を以下の形式に従って出力せよ。

ただし、xi,yix_i, y_iii 回目の操作で選ぶ x,yx, y を表す。

また、最大値を達成する操作列が複数存在する場合は、そのうちどれを出力しても良い。

MM

x1x_1 y1y_1

::

xN1x_{N-1} yN1y_{N-1}

3
1 -1 2
4
-1 1
2 -2

11 回目の操作で xx として 1-1yy として11 を選ぶと、黒板に書かれている整数は (2,2)(-2, 2) になります。

22 回目の操作で xx として 22yy として2-2 を選ぶと、黒板に書かれている整数は (4)(4) になります。

よって 44 がただ 11 つ残り、55 以上の整数がただ 11 つ残ることはないので、これが最大です。

3
1 1 1
1
1 1
1 0