BTP职业网球赛

Special Judge 提交数: 27, 通过率: 0%, 平均分: 0

题目描述:

参加职业网球赛的奶牛们有着职业牛网球赛协会(BTP)的排名。 
有时候,预测一场网球赛的结果是可能的。 
如果参赛的两头牛排名之间的差距大于一个给定的常数K(0<=K<=N-1),即|Rank1-Rank2|>K(其中Rank1,Rank2分别表示奶牛1与奶牛2的排名),那么排名较高的奶牛总是会赢得比赛的胜利。 
下周将有一个大型的淘汰赛制的赛事,有N(N=2^t,t<=16,t∈N)头奶牛参赛,产生一个冠军。在第一轮,N/2对选手进行比赛,获胜的N/2个选手进入下一轮。 
同样,下面的每轮比赛中,都是获胜的一半进入下一轮,直到只剩一头牛。 
场外的牛们在对比赛下赌注,想知道随着一轮一轮的比赛,最后有可能夺冠的牛中排名最低的牛的排名。 
你的工作就是计算这个最低排名,并且给出一种能使这头牛获胜的场次安排。

输入格式:

两个空格隔开的数N和K。

输出格式:

第一行,一个整数,即所有可能夺冠的牛中排名最低的牛的排名。

接下来若干行,表示一个可行的方案。

样例输入:

16 3

样例输出:

11
2 1 7 16 6 4 10 15 5 3 9 14 8 13 11 12
5 2 9 7 8 6 11 10
8 5 11 9
11 8

提示:

限制N≤65536

时间限制: 1000ms
空间限制: 256MB

来源: USACO