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 翻译