atcoder#AGC029C. [AGC029C] Lexicographic constraints

[AGC029C] Lexicographic constraints

配点 : 700700

問題文

NN 個の文字列が一列に並んでおり、どの隣り合う 22 つの文字列に対しても、 左に書いてある文字列の方が右に書いてある文字列よりも辞書順で小さいことが分かっています。 つまり、左から ii 番目の文字列を SiS_i としたときに、辞書順で $S_1 が成り立っています。

SiS_i の長さが AiA_i であると分かっているとき、S1,S2,...,SNS_1,S_2,...,S_N に含まれる文字の種類数として考えられる最小の値を求めてください。

制約

  • 1N2×1051 \leq N \leq 2\times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • AiA_i は整数

Note

文字列は英字アルファベットからなる必要はない。無限に多くの文字があり、辞書式順序がそれらについて定まっているとして良い。

入力

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

NN

A1A_1 A2A_2 ... ANA_N

出力

いずれかの文字列に含まれる文字の種類数として考えられる最小の値を出力せよ。

3
3 2 1
2

例えば、S1=S_1=abc, S2=S_2=bb, S3=S_3=c のときはS1,S2,...,SNS_1,S_2,...,S_N に含まれる文字の種類数は 33 になります。

しかし、文字列をうまく選ぶと、文字の種類数を 22 にすることができます。

5
2 3 2 1 2
2