3857: 【CSP2022】数列变换
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:57
解决:21
题目描述
文件读写 shift.in/out
小 X 看到堆成山的数列作业十分头疼,希望聪明的你来帮帮他。考虑数列
a= [a1,a2 ,⋯,an],定义变换 f(a,k) = [a2 ,a3 ,⋯,ak,a1 ,ak+ 2 ,ak+3 ,⋯,a2k,ak+1,⋯],也
就是把a分段,每段k个(最后如果不足k个,全部分到新的一段里,见样例),然后将每段的第一个移动到该段的最后一个。
现在,小 X 想知道 f( f( f( f([1,2,3,⋯,n],2),3),⋯),n) 的结果。
输入
输入一行包含一个整数n。
输出
输出一行包含n个整数,表示最终的数列。
【样例说明】
f([1,2,3,4],2) = [2,1,4,3]
f([2,1,4,3],3) = [1,4,2,3]( 3 单独被分在一组,移动到组的最后一位,仍然是3 )
f([1,4,2,3],4) = [4,2,3,1]
【数据规模和约定】
对于60% 的数据,1 ≤ n≤ 10^3 。对于100% 的数据,1 ≤ n≤ 10^6 。
样例输入 复制
4
样例输出 复制
4 2 3 1