D. 小 S 摆烂了

    传统题 文件IO:classic 2000ms 812MiB

小 S 摆烂了

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

题目描述

小 S 摆烂了。

小 S 有一个长度为 nn 的序列 AA。他用下面的方式生成序列 BB(同样长度):

  • 如果 Ai<0A_i < 0,则Bi=2AiB_i = - 2^{-A_i}
  • 否则(即 Ai0A_i \ge 0),Bi=2AiB_i = 2^{A_i}

也就是说,正的(或 00)的数会变成 22 的正指数次幂,负的数会变成负的、大小是 22 的对应正指数次幂。

你需要求出序列 BB最大子区间和(最大子段和,允许子区间为空),并输出这个最大值对 998244353998244353 取模的结果。

“可以为空”表示如果所有非空子区间的和都是负数,那么可以选择空区间,空区间和视为 00


输入格式

第一行一个自然数 nn

第二行包含 nn 个整数 AiA_i


输出格式

输出一行一个整数,表示答案。由于答案可能非常大,只需要输出答案对 998244353998244353 取模的结果。


样例

样例 1 输入

6
1 2 -2 1 3 -1

样例 1 输出

12

样例 1 解释

先把 AA 变成 BB

  • A1=10B1=21=2A_1=1 \ge 0 \Rightarrow B_1 = 2^{1} = 2
  • A2=20B2=22=4A_2=2 \ge 0 \Rightarrow B_2 = 2^{2} = 4
  • $A_3=-2 < 0 \Rightarrow B_3 = -2^{-(-2)} = -2^{2} = -4$
  • A4=10B4=21=2A_4=1 \ge 0 \Rightarrow B_4 = 2^{1} = 2
  • A5=30B5=23=8A_5=3 \ge 0 \Rightarrow B_5 = 2^{3} = 8
  • $A_6=-1 < 0 \Rightarrow B_6 = -2^{-(-1)} = -2^{1} = -2$

得到

B=[2,4,4,2,8,2].B = [2, 4, -4, 2, 8, -2].

所有连续子区间中,区间 [1,5][1,5](即 B1B_1B5B_5)的区间和最大:

2+44+2+8=12.2 + 4 - 4 + 2 + 8 = 12.

因此答案是 1212,输出 12mod998244353=1212 \bmod 998244353 = 12


样例 2 输入

见下发文件 pre_classic2.in

样例 2 输出

见下发文件 pre_classic2.out

本组数据满足子任务 1 的限制。


样例 3 输入

见下发文件 pre_classic3.in

样例 3 输出

见下发文件 pre_classic3.out

本组数据满足子任务 3 的限制。


样例 4 输入

见下发文件 pre_classic4.in

样例 4 输出

见下发文件 pre_classic4.out

本组数据满足子任务 5 的限制。


样例 5 输入

见下发文件 pre_classic5.in

样例 5 输出

见下发文件 pre_classic5.out

本组数据满足子任务 6 的限制。


数据范围与提示

本题按子任务评测(不考察多测清空)。

子任务编号 nn Ai\lvert A_i \rvert 特殊性质 分值
1 2000\le 2000 10\le 10 3
2 2×105\le 2\times 10^5 12
3 2000\le 2000 10
4 2×105\le 2\times 10^5 109\le 10^9 A 20
5 2000\le 2000 25
6 2×105\le 2\times 10^5 30

特殊性质 A: AiA_i 在题目给定的范围内等概率随机生成,且数据有恰好三组。


对于 100100% 的数据,满足:

  • 1n2×1051 \le n \le 2 \times 10^5
  • 1Ai1091 \le |A_i| \le 10^9

CSP Round#3

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-10-26 14:00
结束于
2025-10-26 17:30
持续时间
3.5 小时
主持人
参赛人数
14