#diverta20192c. [diverta2019_2_c]Successive Subtraction

[diverta2019_2_c]Successive Subtraction

题目描述

黑板上写着 NN 个整数,A1,A2,...,ANA_1, A_2, ..., A_N

我们将重复以下操作 N1N-1 次,以便在黑板上只剩下一个整数。

  • 选择黑板上的两个整数 xxyy,擦除这两个整数。然后,写入一个新的整数 xyx-y

找出黑板上最终整数的最大可能值,并给出使最终整数最大化的操作序列。

约束条件

  • 2leqNleq1052 \\leq N \\leq 10^5
  • \-104leqAileq104\-10^4 \\leq A_i \\leq 10^4
  • 输入中的所有值均为整数。

输入

输入从标准输入读取,格式如下:

NN A1A_1 A2A_2 ...... ANA_N

输出

以以下格式打印黑板上最终整数的最大可能值 MM,以及最大化最终整数的操作序列 xi,yix_i, y_i

这里,xix_iyiy_i 分别表示第 ii 次操作选择的整数 xxyy

如果有多个操作序列可以使最终整数最大化,则接受任意一个。

MM x1x_1 y1y_1 :: xN1x_{N-1} yN1y_{N-1}


示例输入 1

3
1 -1 2

示例输出 1

4
-1 1
2 -2

如果我们在第一次操作中选择 x=1x = -1y=1y = 1,黑板上的整数集合变为 (2,2)(-2, 2)

然后,在第二次操作中选择 x=2x = 2y=2y = -2,黑板上的整数集合变为 (4)(4)

在这种情况下,我们得到 44 作为最终整数。我们无法得到更大的整数,因此答案是 44


示例输入 2

3
1 1 1

示例输出 2

1
1 1
1 0