口袋(升级版)

口袋(升级版)

Background

这一天大哲同学 来超市购物......
但是这一次,超市的袋子多了最大装载限额k,也就是说大哲所选的袋子的容积不可以大于这个限额k

( [普通版本的链接----口袋]https://vijos.org/d/Steam/p/1003

Description

这一天大哲在超市购物,他的购物车上有X件商品。他有可能会突然决定不购买购物车里的任意一件或多件,甚至是全部商品。保证大哲不会再拿起别的商品放进购物车里。
每个口袋都有一个装载限值,它最多可以装C件商品。在这里,我们规定每个口袋有且只能有两种转态:
1.不装任何一件商品
2.装满C件商品

现在大哲希望你可以帮助他确定他需要所需要的口袋个数,不管他扔掉几件商品都可以用这些口袋装下他所买的商品。当然,大哲希望口袋的个数尽可能的少。他所选的口袋的装载限值不可以大于最大装载限额k。
换句话说,你选择的口袋要装下[0,X]中任意整数件的商品。每两个口袋的装载限值可以相同也可以不同。

Format

Input

输入两个正整数X和k

Output

输出最少需要的口袋数

Sample 1

Input

5 3

Output

3

选择三个口袋的转载限值分别为:1/2/2(不唯一)
购买5件商品时选择1+2+2
购买4件商品时选择2+2
购买3件商品时选择1+2
购买2件商品时选择2
购买1件商品时选择1
购买0件商品时不需要使用口袋

Sample 2

Input

11 3

Output

5

四个口袋可以是1/2/2/3/3(不唯一)

Data range

对于10%的数据,满足k=1
保证对于100%的数据,满足0≤n≤2^50

Limitation

1s, 128MB for each test case.

信息

ID
1005
难度
9
分类
(无)
标签
递交数
4
已通过
1
通过率
25%
上传者