#codefestival2016qualBd. [codefestival_2016_qualB_d]Greedy customers
[codefestival_2016_qualB_d]Greedy customers
题目描述
在高桥商店前,有 个人排成一条队列等待。每个人手上持有的现金为正整数 ,表示排在队列前面的第 个人的现金数。
商店老板高桥先生决定采取以下方案:他选择一个商品,设定一个正整数 表示商品的价格,并按顺序向顾客展示这个商品,从队列前面开始。如下所述,重复执行这一步骤。
在每一步中,当向顾客展示商品时,如果价格 小于等于该顾客当前持有的现金,该顾客将购买该商品,高桥先生结束当前步骤。也就是说,在队列中第一个持有现金大于等于 的顾客手中的现金减少 ,然后开始下一步。
高桥先生可以在每一步独立地设定正整数 的值。
他希望能够卖出尽可能多的商品。然而,如果一个顾客购买商品后手上剩余的现金为 ,那么这个人就没有回家的车费了。对于高桥先生来说,顾客无法回家会是个问题,所以他不希望任何人的现金变成 。
请编写一个程序,来确定在给定每个顾客初始持有的现金情况下,高桥先生能够卖出的最大商品数量。
约束条件
- 所有输入都是整数。
输入
从标准输入中以以下形式给出输入。
:
输出
输出一个整数,表示高桥先生能够卖出的最大商品数量。
示例输入 1
3
3
2
5
示例输出 1
3
作为 的值,按顺序选择 。
示例输入 2
15
3
1
4
1
5
9
2
6
5
3
5
8
9
7
9
示例输出 2
18