AT_joi2019_yo_d 日本沈没 (Japan Sinks)

题目描述

日本列岛是一条细长的列岛。日本列岛被平行的边界线分成了 $N$ 个区块。每个区块从一端开始依次编号为 $1$ 到 $N$。第 $i$ 个区块($1 \leq i \leq N$)的高度为 $A_i$。 日本列岛被海洋包围,海平面高度在所有地方都是一样的。高度高于海平面的区块被称为**陆地**。 陆地连续的部分被称为**岛屿**。更准确地说,定义如下:对于整数 $l$、$r$($1 \leq l \leq r \leq N$),由区块 $l$、$l+1$、...、$r$ 组成的部分称为**区间** \[$l, r$\]。满足以下条件的区间 \[$l, r$\] 被称为岛屿: - 区块 $l$、$l+1$、...、$r$ 都是陆地。 - 如果 $l > 1$,则区块 $l-1$ 不是陆地。 - 如果 $r < N$,则区块 $r+1$ 不是陆地。 由于海平面上升,日本列岛正在逐渐下沉。当前海平面高度为 $0$,但随着时间推移会逐渐升高,最终整个日本都会被海水淹没。 JOI 君注意到,随着海平面高度的上升,日本的岛屿数量会发生变化。请你求出,从现在到日本没有任何陆地为止(包括现在),岛屿数量的最大值。

输入格式

输入以以下格式从标准输入读入。 > $N$ $A_1$ $A_2$ $...$ $A_N$

输出格式

请输出从现在到日本没有任何陆地为止(包括现在)期间,岛屿数量的最大值。

说明/提示

## 限制条件 - $1 \leq N \leq 100000\ (= 10^5)$ - $0 \leq A_i \leq 1000000000\ (= 10^9)$($1 \leq i \leq N$) ## 子任务 1.(7 分)$N \leq 2000$,$A_i \leq 2000$($1 \leq i \leq N$) 2.(8 分)$N \leq 2000$ 3.(85 分)无额外限制。 ## 样例解释 1 - 当海平面高度在 $0$ 以上 $1$ 未满时,区块 $2, 3, 4, 5, 6$ 是陆地。区间 \[$2, 6$\] 是唯一的岛屿,因此岛屿数量为 $1$。 - 当海平面高度在 $1$ 以上 $2$ 未满时,区块 $3, 5, 6$ 是陆地。区间 \[$3, 3$\] 和区间 \[$5, 6$\] 是岛屿,因此岛屿数量为 $2$。 - 当海平面高度在 $2$ 以上 $3$ 未满时,只有区块 $5$ 是陆地。区间 \[$5, 5$\] 是唯一的岛屿,因此岛屿数量为 $1$。 - 当海平面高度达到 $3$ 时,所有陆地都消失,岛屿数量为 $0$。 因此岛屿数量的最大值为 $2$,输出 $2$。 ## 样例解释 2 - 当海平面高度在 $0$ 以上 $2$ 未满时,区块 $1, 2, 3, 5$ 是陆地。区间 \[$1, 3$\] 和区间 \[$5, 5$\] 是岛屿,因此岛屿数量为 $2$。 - 当海平面高度在 $2$ 以上 $3$ 未满时,区块 $1, 3$ 是陆地。区间 \[$1, 1$\] 和区间 \[$3, 3$\] 是岛屿,因此岛屿数量为 $2$。 - 当海平面高度达到 $3$ 时,所有陆地都消失,岛屿数量为 $0$。 因此岛屿数量的最大值为 $2$,输出 $2$。 由 ChatGPT 4.1 翻译