#P14659. [IATI2012]TELEPORT
[IATI2012]TELEPORT
题目描述
某个行星系统有 2^n 个行星,它们按与恒星距离从近到远排成一列,并依次编号为 0,1,...,2^n-1。
Stancho 一开始可以通过太空站到达编号为 k 的行星。除此之外,他还拥有 2^n-1 个一次性传送器,编号为 1,2,...,2^n-1。
编号为 t 的传送器只能使用一次,并且如果当前人在编号为 m 的行星上,那么它可以把人传送到:
m+t,或m-t
前提是目标行星存在,即编号仍在 [0,2^n-1] 范围内。
请你找出一种使用传送器的最佳方式,使得 Stancho 能访问尽可能多的行星。
输入格式
输入一行两个整数 n, k:
1 <= n <= 200 <= k <= 2^n - 1
输出格式
第一行输出 Stancho 最多还能访问多少个行星 p(不包含起始行星 k)。
第二行输出一个长度为 p 的序列,表示依次使用的传送器编号:
- 若某一步是从较小编号传到较大编号,则输出正数
t; - 若某一步是从较大编号传到较小编号,则输出负数
-t。
如果可行方案不唯一,输出任意一个即可。
数据范围
1 <= n <= 200 <= k <= 2^n - 1
样例
输入
2 2
一种可能的输出
3
-1 2 -3