给定正整数 n,k,要求构造长度为 n 的排列 p(即包含 1~n 的每个数恰好一次),定义数组
ai =|pi+1 - pi|,(1≤ i≤ n−1).
如果数组 a 是公差为 k 的等差数列,就称 p 是一个“好排列”。
输出任意一个好排列,若不存在则输出 NO
。
对于一个排列p,其下标从1开始,通过以下规则得到长度为n−1的数组a。
换句话说,即ai=∣pi+1−pi∣。
若满足数组a是一个公差为k的等差数列,我们则称p是一个好排列。
现在小红给你整数n,k,请你帮助他构造一个好排列。
长度为n 的排列是由1~n这n个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如,{2,3,1,5,4}是一个长度为5的排列,而{1,2,2} 和{1,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。
一行两个整数n,k(4≤n≤2×105,−n<k<n),表示排列的长度和公差。
若存在满足条件的排列,第一行输出"YES",第二行输出n个整数,每个整数用空格隔开,表示满足条件的排列,若不存在则输出"NO"。
输入
4 -1
输出
YES
1 4 2 3
a1=∣p2−p1∣=3
a2=∣p3−p2∣=2
a3=∣p4−p3∣=1
故a=3,2,1,其公差为−1,符合题意。
输入
6 4
输出
NO