Successive Subtraction

AtCoder
IDdiverta2019_2_c
Time2000ms
Memory256MB
Difficulty
There are $N$ integers, $A_1, A_2, ..., A_N$, written on a blackboard. We will repeat the following operation $N-1$ times so that we have only one integer on the blackboard. * Choose two integers $x$ and $y$ on the blackboard and erase these two integers. Then, write a new integer $x-y$. Find the maximum possible value of the final integer on the blackboard and a sequence of operations that maximizes the final integer. ## Constraints * $2 \leq N \leq 10^5$ * $-10^4 \leq A_i \leq 10^4$ * All values in input are integers. ## Input Input is given from Standard Input in the following format: $N$ $A_1$ $A_2$ $...$ $A_N$ [samples]
Samples
Input #1
3
1 -1 2
Output #1
4
-1 1
2 -2

If we choose $x = -1$ and $y = 1$ in the first operation, the set of integers written on the blackboard becomes $(-2, 2)$.
Then, if we choose $x = 2$ and $y = -2$ in the second operation, the set of integers written on the blackboard becomes $(4)$.
In this case, we have $4$ as the final integer. We cannot end with a greater integer, so the answer is $4$.
Input #2
3
1 1 1
Output #2
1
1 1
1 0
API Response (JSON)
{
  "problem": {
    "name": "Successive Subtraction",
    "description": {
      "content": "There are $N$ integers, $A_1, A_2, ..., A_N$, written on a blackboard. We will repeat the following operation $N-1$ times so that we have only one integer on the blackboard. *   Choose two integers $",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "diverta2019_2_c"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There are $N$ integers, $A_1, A_2, ..., A_N$, written on a blackboard.\nWe will repeat the following operation $N-1$ times so that we have only one integer on the blackboard.\n\n*   Choose two integers $...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments