教主的集合序列

教主的集合序列

测试数据来自 system/1472

描述

定义集合S1为1到n之间所有正整数组成的集合,即S1={1,2,3…n}。当k>1时,Sk为集合Sk-1中任意两个不相同数之和的集合。

例如,当n=3时:
S1={1,2,3}
S2={3,4,5}
S3={7,8,9}
S4={15,16,17}
……

现将每个集合中所有元素取出,集合Si的数放在集合Si+1的数的前面,同一个集合数从小到大排序,这样得到一个序列L。例如,当n=3时,L=1,2,3,3,4,5,7,8,9,15,16,17……
那么,现对于给定的n和k,求L中第k个数。

格式

输入格式

输入包含1行,为2个正整数n和k,两个整数用逗号隔开。

输出格式

输出包含1行,为一个正整数,即序列L中第k个数。若这个数不存在,则输出-1。

样例1

样例输入1

4 6

样例输出1

4

限制

对于20%的数据,有k≤20;
对于40%的数据,有k≤10000,n≤5;
对于40%的数据,满足答案不超过2^31-1;
对于60%的数据,有k≤2^30-1;
对于80%的数据,有k≤10^100;
对于100%的数据,有k≤10^1000,1<n≤1000;且数据保证当n≤3时,k≤900000。

时限1s

提示

当n=4时,序列L=1,2,3,4,3,4,5,6,7,7……
所以序列中第6个数为4。

信息

ID
1222
难度
10
分类
其他 | 二分查找高精度 点击显示
标签
递交数
1
已通过
0
通过率
0%
上传者