#CSP1026D. 小 S 摆烂了
小 S 摆烂了
题目描述
小 S 摆烂了。
小 S 有一个长度为 的序列 。他用下面的方式生成序列 (同样长度):
- 如果 ,则
- 否则(即 ),
也就是说,正的(或 )的数会变成 的正指数次幂,负的数会变成负的、大小是 的对应正指数次幂。
你需要求出序列 的最大子区间和(最大子段和,允许子区间为空),并输出这个最大值对 取模的结果。
“可以为空”表示如果所有非空子区间的和都是负数,那么可以选择空区间,空区间和视为 。
输入格式
第一行一个自然数 。
第二行包含 个整数 。
输出格式
输出一行一个整数,表示答案。由于答案可能非常大,只需要输出答案对 取模的结果。
样例
样例 1 输入
6
1 2 -2 1 3 -1
样例 1 输出
12
样例 1 解释
先把 变成 :
- $A_3=-2 < 0 \Rightarrow B_3 = -2^{-(-2)} = -2^{2} = -4$
- $A_6=-1 < 0 \Rightarrow B_6 = -2^{-(-1)} = -2^{1} = -2$
得到
所有连续子区间中,区间 (即 到 )的区间和最大:
因此答案是 ,输出 。
样例 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 的限制。
数据范围与提示
本题按子任务评测(不考察多测清空)。
| 子任务编号 | 特殊性质 | 分值 | ||
|---|---|---|---|---|
| 1 | 无 | 3 | ||
| 2 | 12 | |||
| 3 | 10 | |||
| 4 | A | 20 | ||
| 5 | 无 | 25 | ||
| 6 | 30 | |||
特殊性质 A: 在题目给定的范围内等概率随机生成,且数据有恰好三组。
对于 的数据,满足:
相关
在下列比赛中: