luogu#P1647. 锁

题目描述

给出 NNKK,要求生成从 002N12^N-1 的一个序列,序列的第一项为 00,并且该序列满足以下三个条件:

  1. 序列长度为 2N2^N,保证 002N12^N-1 的每个数都用了且只用了一次。
  2. 序列中任意两相邻的数都是由前一个数在其二进制下,改变了具有相同值的若干个位而形成的,即把其中若干个 00 变为 11,或把其中若干个 11 变为 00,并且只能二选一。
  3. 当存在多个序列满足前两个条件的时候,要保证字典序最小,即由前一个数生成后一个数的时候,要挑值最小的数(当然是满足前两个条件的情况下)。

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

输入格式

仅一行两个整数 N,KN,K

输出格式

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

3 8
111

提示

样例解释

生成的序列为 [000,001,011,010,110,100,101,111][000,001,011,010,110,100,101,111]。前 88 项当中的最大值为 111111

数据范围及约定

对于全部数据,1N50,1K2N1 \le N \le 50,1 \le K \le 2^N