编程题
### 问题描述 你是一位数学奇才,但却被困在了神秘的数字王国中。在你面前,摆放着一串神奇的数字,它们组成了一个长度为 $n$ 的序列,记作 $a$。你的使命是利用你特殊的能力,最大化序列中所有数字的总和,但是有一个限制:你只能进行不超过 $n$ 次操作。 那么,你的特殊能力是什么呢?嗯,你可以选择序列中的某一段连续的数字,然后将它们变为自身的相反数。举个例子,假设你选择了位置 $i$,那么 $a_1, a_2, \dots, a_i$ 中的每个数字都会乘以 $-1$。 现在,你需要巧妙运用你的能力,设计一种操作方案,使得经过不超过 $n$ 次操作后,序列 $a$ 中所有数字的总和尽可能大。请计算出这个最大的总和是多少?! ### 输入格式 第一行包含一个整数 $n$,表示序列 $a$ 的长度 $(1 \leq n \leq 10^5)$。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$,表示序列 $a$ 中的元素 $(-10^9 \leq a_i \leq 10^9)$。 ### 输出格式 输出一个整数,表示经过不超过 $n$ 次操作后,序列 $a$ 中所有数字的最大总和。 ### 样例输入 ``` 3 -1 -2 3 ``` ### 样例输出 ``` 6 ``` ### 说明 一种最优的操作方案是:选择位置 $2$,将序列变为 $[1, 2, 3]$。这样一来,序列中所有数字的总和为 $$ 1 + 2 + 3 = 6 $$ 显然,不会有比这更大的数字总和了。
查看答案
赣ICP备20007335号-2