核心想法(简单构造)
把区间 [1, 2, ..., k+1] 整体倒序,其余 [k+2, k+3, ..., n] 仍按升序接在后面,即:
[k+1, k, k-1, ..., 2, 1, k+2, k+3, ..., n]
小红希望你构造一个长度为 n 的排列,其中恰好有 k 对相邻的数满足前一个数人大于后一个数,可以证明,对于任意 k>n ,都存在一个合法的排列。你能帮帮她吗?
【名词解释】
长度为 n 的排列:由 1,2,...,n 这 n 个整数,按任意顺序组成的数组(每个整数均恰好出现一次)。例如 {2,3,1,5,4} 是一个长度为 5 的排列,而 {1,2,2} 和 {1,3,4 } 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
在一行上输入两个整数 n,k(1≤k<n≤105) 。
在一行上输出 n 个整数,表示你所构造的一个合法排列。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确,注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
5 2
输出
1 4 2 5 3
输入
3 2
输出
3 2 1