atcoder#DIVERTA20192C. Successive Subtraction

Successive Subtraction

题目描述

黒板に A1, A2, ..., AN A_1,\ A_2,\ ...,\ A_N N N 個の整数が書かれています。

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

  • 2 2 個の整数 x, y x,\ y を選んで消し、新たに 1 1 個の整数 xy x-y を書く。

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

输入格式

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

N N A1 A_1 A2 A_2 ... ... AN A_N

输出格式

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

ただし、xi, yi x_i,\ y_i i i 回目の操作で選ぶ x, y x,\ y を表す。

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

M M x1 x_1 y1 y_1 : : xN1 x_{N-1} yN1 y_{N-1}

题目大意

黑板上有 NN 个正整数 A1,A2,A3,,ANA_1, A_2, A_3, \cdots, A_N

进行以下 N1N - 1 次操作:

  • 选择两个数 x,yx, y 擦掉,写上 xyx-y

在黑板上找到最终整数的最大可能值,以及使最终整数最大化的操作序列。

translator:219791

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

提示

制約

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

Sample Explanation 1

1 1 回目の操作で x x として 1 -1 y y として1 1 を選ぶと、黒板に書かれている整数は (2, 2) (-2,\ 2) になります。 2 2 回目の操作で x x として 2 2 y y として2 -2 を選ぶと、黒板に書かれている整数は (4) (4) になります。 よって 4 4 がただ 1 1 つ残り、5 5 以上の整数がただ 1 1 つ残ることはないので、これが最大です。