AT_codefestival_2016_qualB_d Greedy customers
Description
[problemUrl]: https://atcoder.jp/contests/code-festival-2016-qualb/tasks/codefestival_2016_qualB_d
高橋商店の前には、$ N $ 人の人が $ 1 $ 列に並んでいます。前から $ i $ 人目の人の所持金は正整数 $ A_i $ です。
店主の高橋君は、「品物を選んでその価格を表す正の整数 $ P $ を設定し、前の人から順にその品物を見せていく」というステップを繰り返します。
各ステップにおいて、各人は、品物を見せられた時、その価格 $ P $ が現時点でのその人の所持金以下だった場合その品物を購入し、高橋君の $ 1 $ 回のステップは終了します。 すなわち、所持金が $ P $ 以上の最初の人の所持金が $ P $ 減少し、次のステップに移ります。
高橋君は正整数 $ P $ の値を、ステップごとに独立に決めることができます。
高橋君はできるだけ多くの品物を売りたいですが、品物を売った人の所持金が $ 0 $ になってしまうと、その人は帰れなくなってしまいます。人が帰れなくなってしまうと高橋君は困ってしまうので、どの人の所持金も $ 0 $ にしてはいけません。
高橋君に代わって、各人の最初の所持金が与えられたとき、高橋君が最大でいくつの品物を売ることができるかを求めるプログラムを作成してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ : $ A_N $
Output Format
高橋君が売ることのできる商品の最大数を表す整数を出力せよ。
Explanation/Hint
### 制約
- $ 1\ ≦\ N\ ≦\ 100000 $
- $ 1\ ≦\ A_i\ ≦\ 10^9(1\ ≦\ i\ ≦\ N) $
- 入力はすべて整数である
### Sample Explanation 1
$ P $の値として、順に$ 1,4,1 $と選べばよいです。