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

提示


来源/分类