AT_codefestival_2016_qualB_d Greedy customers

题目描述

高桥商店门前有 $N$ 个人排成一列。从前往后第 $i$ 个人的所持金为正整数 $A_i$。 店主高桥君会反复进行如下操作:“选择一种商品并设定其价格为正整数 $P$,然后依次从前往后向每个人展示该商品”。 在每一步操作中,每个人在被展示商品时,如果该商品价格 $P$ 不超过他当前的所持金,则会购买该商品,此时高桥君本次操作结束。也就是说,所持金不少于 $P$ 的第一个人的所持金会减少 $P$,然后进入下一步操作。 高桥君可以在每一步独立地选择正整数 $P$ 的值。 高桥君希望尽可能多地卖出商品,但如果某个人的所持金变为 $0$,那个人就无法回家了。高桥君不希望有人无法回家,因此不能让任何人的所持金变为 $0$。 请你根据每个人的初始所持金,帮高桥君计算他最多能卖出多少件商品。

输入格式

输入通过标准输入给出,格式如下: > $N$ $A_1$ $A_2$ $\cdots$ $A_N$

输出格式

输出高桥君最多能卖出的商品数量。

说明/提示

## 限制条件 - $1 \leq N \leq 100000$ - $1 \leq A_i \leq 10^9\ (1 \leq i \leq N)$ - 输入均为整数 ## 样例解释 1 依次选择 $P$ 的值为 $1, 4, 1$ 即可。 由 ChatGPT 4.1 翻译