签到题
题号:NC305062
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}对于一个长度为 n 的数组 a_1,a_2,\dots,a_n,定义 S(a) 为:

\displaystyle S(a)=\sum\limits_{i=1}^{n-1}\Big(a_i\times a_{i+1}-\mathrm{lcm}(a_i,a_{i+1})\Big)

\hspace{15pt}其中,\mathrm{lcm} 运算表示最小公倍数^\texttt{[1]}
\hspace{15pt}现在,对于给定的正整数 n,请你输出一个长度为 n排列^\texttt{[2]} a,使得 S(a) 最小。若有多个排列使得 S(a) 最小,输出任意一个即可。

【名词解释】
\hspace{15pt}最小公倍数(lcm)^\texttt{[1]}:指两个或多个整数公有的倍数中最小的一个。例如,812 的最小公倍数是 24,因此记作 \operatorname{lcm}(8,12)=24
\hspace{15pt}长度为 n排列^\texttt{[2]}:由 1,2,\dots,nn 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,\{2,3,1,5,4\} 是一个长度为 5 的排列,而 \{1,2,2\}\{1,3,4\} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述:

\hspace{15pt}在一行上输入一个整数 n \left(2\le n \le 10^{4}\right),表示排列的长度。

输出描述:

\hspace{15pt}在一行上输出 n 个整数,代表一个排列 a

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
2

输出

复制
1 2

说明

\hspace{15pt}在这个样例中,有且仅有 \{1, 2\}\{2,1\} 两种构造,两者的 S(a) 均为 1 \times 2 - \operatorname{lcm}(1,2) = 0,输出任意一个均可。
示例2

输入

复制
2

输出

复制
2 1
示例3

输入

复制
5

输出

复制
2 1 3 4 5