#icpc2013summerday2b. [icpc2013summer_day2_b]Evacuation Route
[icpc2013summer_day2_b]Evacuation Route
日本的防灾研究非常活跃,近年其重要性越来越高。评估避难路径也是其中重要的研究之一。这次我们将对直线通道进行安全评估。
通道被分为W个单元,从其中一个端点单元到另一个端点单元依次编号为1, 2, 3, ..., W。每个单元内有入口门、出口门和防火门中的一个存在。入口门、出口门和防火门在通道内各可能存在多个。
假设在时刻t=0发生了火灾。因此,正在外部试图逃离并通过入口门进入通道的人们会尝试逃离到出口门,以到达更安全的地方。在逃离过程中,每个人每个单位时间可以移动一个单元,或者保持在当前单元。也就是说,在时刻t,假设某人位于单元i,那么在时刻t+1,该人可以选择1到W之间的数字中的一个,即i-1, i, i+1,并移动到该编号的单元。当存在防火门的单元时,经过一定的时间后,该单元将完全被隔离,逃离中的人们将无法进入该单元。同时,该单元内的人们也无法移动到其他单元。
在这个问题中,我们的目标是根据给定的门信息,计算在人们最优行动时有多少人可以到达出口门。
通道的信息用W个整数ai给出。
- 当ai = 0时,表示第i个单元为出口门。
- 当ai < 0时,表示第i个单元由防火门在时间|ai|之后无法进出。
- 当ai > 0时,表示第i个单元为入口门,表示时刻t=0,1,2,...,ai-1时,恰有一人出现在第i个单元。时刻t出现的人从时刻t+1开始移动。
注意,一个单元可以存在多个人。
求出能够到达出口门的最大人数。
输入格式
输入以以下格式给出
W a1 a2 ... aW
输出格式
在一行中输出最大人数。
约束
- 1 ≤ W ≤ 10^5
- |ai| ≤ 10^4
- 所有输入均为整数。
输入输出示例
输入示例1
7
2 0 -2 3 2 -2 0
输出示例1
4
单元号1、4和5处有入口门,2和6处有出口门。 从单元1可以有2人走向单元2。 从单元4可以有1人走向单元2。 从单元5可以有1人走向单元7。 因此总共有4人可以到达出口。
输入示例2
4
1 1 1 1
输出示例2
0
由于没有出口,所以没有人能够逃离。
输入示例3
9
10 -10 10 -10 10 -10 10 -10 0
输出示例3
24