310144: CF1788E. Sum Over Zero

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Sum Over Zero

题意翻译

给你一个长度为 $n$ 的序列 $a_1,a_2 ... a_{n-1},a_n$,现在请你找到这个序列的若干个**不相交的合法子段**。 对于你选择的一个子段 $[x,y]$,其为一个合法子段当且仅当 $\sum^{i\leq y}_{i=x} a_i \geq 0$,即子段的区间和非负。 对于一个合法的子段 $S=[x,y]$,我们记 $f(S)=(y-x+1)$,且当子段 $S$ 为空时, $f(S)=0$。 对于你选择的这若干个**不相交合法子段**,请最大化$\sum_S f(S)$并输出这个最大值

题目描述

You are given an array $ a_1, a_2, \ldots, a_n $ of $ n $ integers. Consider $ S $ as a set of segments satisfying the following conditions. - Each element of $ S $ should be in form $ [x, y] $ , where $ x $ and $ y $ are integers between $ 1 $ and $ n $ , inclusive, and $ x \leq y $ . - No two segments in $ S $ intersect with each other. Two segments $ [a, b] $ and $ [c, d] $ intersect if and only if there exists an integer $ x $ such that $ a \leq x \leq b $ and $ c \leq x \leq d $ . - For each $ [x, y] $ in $ S $ , $ a_x+a_{x+1}+ \ldots +a_y \geq 0 $ . The length of the segment $ [x, y] $ is defined as $ y-x+1 $ . $ f(S) $ is defined as the sum of the lengths of every element in $ S $ . In a formal way, $ f(S) = \sum_{[x, y] \in S} (y - x + 1) $ . Note that if $ S $ is empty, $ f(S) $ is $ 0 $ . What is the maximum $ f(S) $ among all possible $ S $ ?

输入输出格式

输入格式


The first line contains one integer $ n $ ( $ 1 \leq n \leq 2 \cdot 10^5 $ ). The next line is followed by $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ -10^9 \leq a_i \leq 10^9 $ ).

输出格式


Print a single integer, the maximum $ f(S) $ among every possible $ S $ .

输入输出样例

输入样例 #1

5
3 -3 -2 5 -4

输出样例 #1

4

输入样例 #2

10
5 -2 -4 -6 2 3 -6 5 3 -2

输出样例 #2

9

输入样例 #3

4
-1 -2 -3 -4

输出样例 #3

0

说明

In the first example, $ S=\{[1, 2], [4, 5]\} $ can be a possible $ S $ because $ a_1+a_2=0 $ and $ a_4+a_5=1 $ . $ S=\{[1, 4]\} $ can also be a possible solution. Since there does not exist any $ S $ that satisfies $ f(S) > 4 $ , the answer is $ 4 $ . In the second example, $ S=\{[1, 9]\} $ is the only set that satisfies $ f(S)=9 $ . Since every possible $ S $ satisfies $ f(S) \leq 9 $ , the answer is $ 9 $ . In the third example, $ S $ can only be an empty set, so the answer is $ 0 $ .

Input

题意翻译

给你一个长度为 $n$ 的序列 $a_1,a_2 ... a_{n-1},a_n$,现在请你找到这个序列的若干个**不相交的合法子段**。 对于你选择的一个子段 $[x,y]$,其为一个合法子段当且仅当 $\sum^{i\leq y}_{i=x} a_i \geq 0$,即子段的区间和非负。 对于一个合法的子段 $S=[x,y]$,我们记 $f(S)=(y-x+1)$,且当子段 $S$ 为空时, $f(S)=0$。 对于你选择的这若干个**不相交合法子段**,请最大化$\sum_S f(S)$并输出这个最大值

加入题单

算法标签: