#iroha2019day4d. [iroha2019_day4_d]揺れる街、増える敵
[iroha2019_day4_d]揺れる街、増える敵
ストーリー
「究竟发生了什么……」回去的路上,小日向开始嘟嘟囔囔地说道。「刚才那个怪物,明显有问题」「那种东西,不应该存在于这个世界」「它就像一个bug……」
她的话被一阵轰鸣声打断。而且,这次不只一次。我们相互对视,开始奔跑。
问题描述
在T个城市中,分别出现了敌人。
第i个城市出现的敌人呈一列排列成方块状,初始方块的数量为1到Li个。城市中已经破坏了敌人方块中的0个或更多个,敌人被分割成了若干个部分。当敌人方块的数量为L的时候,如果从端点开始破坏第i个方块,则敌人会被分割成两个敌人,其中一个的方块数量为i-1,另一个的方块数量为L-i(注意:如果方块数量为0,敌人将消失)。
然而,敌人一旦被分割,它们就会变得更加强大。具体地说,当敌人被分割成p1、p2、……、pn个部分时,整体的敌人强度将变为p1 × p2 × … × pn。
现在,第i个城市的敌人强度超过了2^Ai。对于每个出现在T个城市中的敌人,求可能作为敌人初始方块数量的方式有多少种。
约束条件
- 输入都是整数。
- 1≤T≤300
- 1≤Li≤10^9,0≤Ai≤10^9
输入
输入包含以下内容:
T
L1 A1
L2 A2
:
LT AT
输出
输出T行,第i行输出第i个城市出现的敌人的答案。
输入示例
4
9 3
13 4
11 6
11235813 213455
输出示例
3
5
0
10702177
第1个城市出现的敌人的初始方块数量有3种可能:7、8、9。
分别对应以下的破坏方式满足条件(o表示方块未被破坏,x表示方块被破坏):
- 初始方块数量为7:
ooxoooo
(敌人强度为8) - 初始方块数量为8:
ooxooxoo
(敌人强度为8) - 初始方块数量为9:
oooxoxooo
(敌人强度为9)
第2个城市出现的敌人的初始方块数量有5种可能:9、10、11、12、13。
分别对应以下的破坏方式满足条件:
- 初始方块数量为9:
ooooxoooo
(敌人强度为16) - 初始方块数量为10:
ooxooxoooo
(敌人强度为16) - 初始方块数量为11:
oooxooooxoo
(敌人强度为24) - 初始方块数量为12:
oooooooooxoo
(敌人强度为18) - 初始方块数量为13:
ooooxoooooooo
(敌人强度为32)
第3个城市出现的敌人的初始方块数量有0种可能。