C. 交替序列

    传统题 1000ms 256MiB

交替序列

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述:

对于一个序列 aa,删除其中 00 个或多个元素而不改变剩余元素的顺序,得到的序列称为 aa子序列

例如,序列 a={1,2,3,4,5}a =\{1, 2, 3, 4, 5\},其子序列可以为:

  • {1,2,3}\{1, 2, 3\}
  • {1,3,5}\{1, 3, 5\}
  • {2,4}\{2, 4\}
  • {1,2,4,5}\{1, 2, 4, 5\} 等。

给定一个包含 nn 个整数的序列 aa,请从中找出一个满足以下两个条件的子序列:

  1. 正负交错: 子序列中相邻元素的正负号相反
    • 例如若第一个元素为正数,则第二个必须为负数,第三个再为正数,以此类推;
    • 若第一个元素为负数,第二个必须为正数,第三个再为负数……
  2. 长度尽可能长: 子序列的长度应为所有满足条件 11 的方案中最长的。
  3. 在长度相同的情况下,取出其中元素之和最大的那个子序列。

输入描述:

第一行:一个整数 n1n2×105n(1 \le n \le 2 \times 10^5)

第二行:nn 个整数 ai109ai109a_i(-10^9 \le a_i \le 10^9 ai0a_i \neq 0),整数之间用空格隔开。

输出描述:

输出一个整数,表示满足要求的子序列的元素之和

5  
2 -1 -3 15 10
16

满足条件1 1 2 2 的子序列有:

  • {2,1,15}\{2, -1, 15\}
  • {2,1,10}\{2, -1, 10\}
  • {2,3,15}\{2, -3, 15\}
  • {2,3,10}\{2, -3, 10\}

这些长度均为 33,取元素之和最大的:

  • {2,1,15}\{2, -1, 15\} \rightarrow 和为 1616,为最大。

「果壳语法杯」ROUND #12 (Div.4)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2025-7-25 18:00
结束于
2025-7-27 18:00
持续时间
2 小时
主持人
参赛人数
19