Problem D: 病毒(virus)
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:61
Solved:29
Description
小Z和小Y玩了幻方没多久,终于小Q做完作业赶过来了,可还是三缺一啊,这可真急人,于是急性的小Y给慢性子的小X打电话,原来小X在帮他爸爸恢复一组的实验原始数据,事情是这样的,小X的爸爸老X最近在研究某种变异新冠病毒的传染性,老X分离出新冠病毒有n个不同的基础基因,这n个基因排成一排,他根据每个基因的传染强度设为1到n中的一种,每种基础基因的传染强度都不一样,他根据新冠病毒的基因排列,就能计算出此种新冠病毒的最终传染强度。新冠病毒合成规则:每次相邻两个基因会合成一个新的基因,新的基因的传染强度为两个基因相加的值,经过一次合并,总基因数就会少1,很明显有n个基因的病毒经过n-1合并后最终会合成一个新冠病毒,新冠病毒的传染力就是最后一次两个基因传染强度之和。
下图就是是一种基因合并例子

此新冠病毒有4个不同的基础基因,每个基因的传染强度分别是1-4,经过3次合并后,合成新冠病毒,最终此新冠病毒的传染强度为16。
但他爸爸得到最终病毒传染强度后,却不小心把原始基因的排列弄丢了,他只知道原始有几个基本基因,所以他想请学过编程的小X帮他找出原始的基因排列。如果有多种排列,则找出字典序最少的一种。
为了尽快解放小X,于是大家决定求助会编程你。
下图就是是一种基因合并例子
此新冠病毒有4个不同的基础基因,每个基因的传染强度分别是1-4,经过3次合并后,合成新冠病毒,最终此新冠病毒的传染强度为16。
但他爸爸得到最终病毒传染强度后,却不小心把原始基因的排列弄丢了,他只知道原始有几个基本基因,所以他想请学过编程的小X帮他找出原始的基因排列。如果有多种排列,则找出字典序最少的一种。
为了尽快解放小X,于是大家决定求助会编程你。
Input
第一行两个整数n,m,分别代表原始基因个数和最终病毒的传染性
Output
一行,n个整数,表示n个原始基因的排列,两个数字中间用一个空格隔开。若有多种,输出字典序最小的。
Sample Input Copy
Sample Output Copy
HINT
【输入样例】
4 16
【输出样例】
3 1 2 4
【输入样例解释】
样例有四种可能性
3 1 2 4
3 2 1 4
4 1 2 3
4 2 1 3
输出第一组字典序最小
【数据范围】
对于40%的数据,n≤7;
对于80%的数据,n≤10;
对于100%的数据,n≤12,m≤50000,且保证一定有解。
4 16
【输出样例】
3 1 2 4
【输入样例解释】
样例有四种可能性
3 1 2 4
3 2 1 4
4 1 2 3
4 2 1 3
输出第一组字典序最小
【数据范围】
对于40%的数据,n≤7;
对于80%的数据,n≤10;
对于100%的数据,n≤12,m≤50000,且保证一定有解。