#joi2019yod. [joi2019_yo_d]日本沈没 (Japan Sinks)

[joi2019_yo_d]日本沈没 (Japan Sinks)

問題文

日本列島は細長い列島である.日本列島は平行な境界線により NN 個の区画に分けられている.区画には端から順に 11 から NN の番号が付けられている.区画 ii (1iN1 ≦ i ≦ N) の高さは AiA_i である.

日本列島は海に囲まれており,海面の高さは場所によらず一定である.高さが海面の高さより高い区画を陸地と呼ぶ.

陸地が連続している部分のことをと呼ぶ.より正確に書くと以下の通りである.整数 ll, rr (1lrN1 ≦ l ≦ r ≦ N) について,日本列島のうち区画 ll,区画 l+1l+1......,区画 rr からなる部分を領域 [l,rl, r] という.以下の条件を満たす領域 [l,rl, r] を島という:

  • 区画 ll,区画 l+1l+1......,区画 rr はすべて陸地である.
  • l>1l>1 ならば区画 l1l-1 は陸地ではない.
  • r<Nr<N ならば区画 r+1r+1 は陸地ではない.

海面の上昇により,日本列島は少しずつ沈没している.現在の海面の高さは 00 であるが,これは時間が経つにつれて徐々に上がり,ついには日本全体が海になってしまう.

JOI 君は,海面の高さが上昇すると,日本の島の数が増減することに気付いた.現在から,日本に陸地がなくなるまでの間 (現在も含む) における,島の数の最大値を求めたい.

制約

  • 1N100000(=105)1 ≦ N ≦ 100000 (= 10^5)
  • 0Ai1000000000(=109)0 ≦ A_i ≦ 1000000000 (= 10^9) (1iN1 ≦ i ≦ N)

入力

入力は以下の形式で標準入力から与えられる.

NN A1A_1 A2A_2 ...... ANA_N

出力

現在から,日本に陸地がなくなるまでの間 (現在も含む) における,島の数の最大値を 1 行で出力せよ.

小課題

  1. (77 点) N2000N ≦ 2000, Ai2000A_i ≦ 2000 (1iN1 ≦ i ≦ N)
  2. (88 点) N2000N ≦ 2000
  3. (8585 点) 追加の制約はない.

入力例 1

6
0 1 2 1 3 2

出力例 1

2
  • 海面の高さが 00 以上 11 未満のとき,区画 2,3,4,5,62, 3, 4, 5, 6 が陸地である.領域 [2,62, 6] が唯一の島なので,島の数は 11 である.
  • 海面の高さが 11 以上 22 未満のとき,区画 3,5,63, 5, 6 が陸地である.領域 [3,33, 3] と領域 [5,65, 6] が島なので,島の数は 22 である.
  • 海面の高さが 22 以上 33 未満のとき,区画 55 のみが陸地である.領域 [5,55, 5] が唯一の島なので,島の数は 11 である.
  • 海面の高さが 33 になると,陸地はなくなり,島の数は 00 になる.

よって島の数の最大値は 22 なので,22 を出力する.


入力例 2

6
3 2 3 0 2 0

出力例 2

2
  • 海面の高さが 00 以上 22 未満のとき,区画 1,2,3,51, 2, 3, 5 が陸地である.領域 [1,31, 3] と領域 [5,55, 5] が島なので,島の数は 22 である.
  • 海面の高さが 22 以上 33 未満のとき,区画 1,31, 3 が陸地である.領域 [1,11, 1] と領域 [3,33, 3] が島なので,島の数は 22 である.
  • 海面の高さが 33 になると,陸地はなくなり,島の数は 00 になる.

よって島の数の最大値は 22 なので,22 を出力する.


入力例 3

10
4 1 2 1 2 3 5 4 3 2

出力例 3

3