1666: 锁

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:3 解决:0

题目描述

给出NK,要求生成从02N-1的一个序列,序列的第一项为0,并且该序列满足一下三个条件:

(1)序列长度为2N,保证02N-1每个数都用了且只用了一次。

(2)序列中任意两相邻的数都是由前一个数在其二进制下,改变了具有相同值的若干个位而形成的,即把其中若干个0变为1,或把其中若干个1变为0,并且只能二选一。

(3)当存在多少个序列满足前两个条件的时候,要保证字典序最小,即由前一个数生成后一个数的时候,要挑值最小的数(当然是满足前两个条件的情况下)。

     现在问你这个序列前K项中最大值是多少,输出其二进制形式,注意一定要输出N位,包括前导零。

输入

仅一行两个整数NK

输出

  一个二进制表示的数,为所求的答案。

样例输入 复制

3  8

样例输出 复制

1 1 1

提示

【样例解释】

整个序列为“000”,“001”,“011”,“010”,“110”,“100”,“101”,“111”。

【数据规模】

1N501K2N,注意K可能超过longint