#P10811. 【MX-S2-T2】 排

【MX-S2-T2】 排

背景

原题链接:https://oier.team/problems/S2B。

题目描述

有 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。$f_0=0,f_i= \left\{ \begin{aligned} & f_{i-1} & \ f_{i-1}\times a_i>0, \\ & f_{i-1}+a_i & \ f_{i-1}\times a_i\le 0.\\ \end{aligned} \right.$

重排 aa 使得得到的 fnf_n 最大。

输入格式

第一行一个整数 nn。

第二行 nn 个整数 a1,…,ana_1,\dots,a_n。

输出格式

一行一个整数,表示答案。

5
7 5 -4 -6 3
6
10
573 -1339 899 939 -26 1430 1324 -1150 1640 -45 
1625

提示

【样例解释 #1】

考虑重排为 −6,−4,5,7,3-6,-4,5,7,3,最终的 fnf_n 为 66,可以证明不存在更优的方案。

【数据范围】

本题采用捆绑测试。

  • Subtask 0(6 pts):n≤10n\le10。
  • Subtask 1(14 pts):n≤20n\le 20,∣ai∣≤10|a_i|\le10。
  • Subtask 2(8 pts):aa 中全为正数或全为负数。
  • Subtask 3(19 pts):aa 中有且只有一个正数(注意 aa 中可以有 00)。
  • Subtask 4(29 pts):n≤200n \le 200,∣ai∣≤200|a_i|\le 200。
  • Subtask 5(24 pts):无特殊限制。

对于所有测试数据,1≤n≤20001 \le n \le 2000,∣ai∣≤2000|a_i|\le 2000。