#T1231. 小 Z 的最大子段和(Bounded Max Subarray Sum)

0

小 Z 的最大子段和(Bounded Max Subarray Sum)

小 Z 的最大子段和(Bounded Max Subarray Sum)

题目描述

小 Z 学习了最大子段和问题,就是给出一个序列,要找到这个序列中连续并且非空的一段,使得这一段的和最大。小 Z 现在当然会求最大子段和了。

小 Y 见小 Z 因为学到的新知识而洋洋得意,立马变换了一下这个问题。现在有 nn 个元素的序列 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n,小 Y 每一次都会删除这个序列中的一个数 aia_i,问小 Y 每一次删除后,剩余序列的最大子段和是多少。

小 Z 只会最简单的最大子段和,对于小 Y 的这个问题他只能求助于你。

输入格式

第一行输入一个整数 nn,表示序列元素的个数。

第二行输入 nn 个自然数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n。

输出格式

输出一行共 nn 个整数,表示小 Y 每次删除 aia_i 后剩余序列的最大子段和。

样例输入 #1

5
1 6 -100 4 5

样例输出 #1

9 9 16 7 7

样例输入 #2

10
493 592 620 176 389 -807 -2 960 687 762

样例输出 #2

3377 3278 3250 3694 3481 4677 3872 2910 3183 3108

数据范围

【样例 1 解释】

  • 删除 11,得到序列为 [6,−100,4,5][6,-100,4,5],最大子段序列为 [4,5][4,5] 最大子段和为 99。
  • 删除 66,得到序列为 [1,−100,4,5][1,-100,4,5],最大子段序列为 [4,5][4,5] 最大子段和为 99。
  • 删除 −100-100,得到序列为 [1,6,4,5][1, 6, 4, 5],最大子段序列为 [1,6,4,5][1,6,4,5] 最大子段和为 1616。
  • 删除 44,得到序列为 [1,6,−100,4][1,6,-100,4],最大子段序列为 [1,6][1,6] 最大子段和为 77。
  • 删除 55,得到序列为 [1,6,−100,4][1,6,-100,4],最大子段序列为 [1,6][1,6] 最大子段和为 77。

【数据范围】

对于 30%30\% 的数据,n≤100n\leq 100

对于 60%60\% 的数据,n≤1000n\leq 1000

对于 100%100\% 的数据,1<n≤105,∣ai∣≤1091< n\leq 10^5,|a_i|\leq 10^9。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1400。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 25 3~8 小规模与边界测试数据
2 30 9~16 中等规模测试数据
3 35 17~25 满规模极限测试数据

出处:原题链接