#P11521. [2022省队模拟]重排列

[2022省队模拟]重排列

题目描述

Alice 和 Bob 正在博弈。现在他们面前有一个长度为 nn 的正整数序列 A={a1,a2,,an}A=\{a_1,a_2,\cdots,a_n\}。两人各需进行一次操作:

  • 首先由 Alice 进行操作,将序列 AA 的元素任意重排。
  • 然后由 Bob 进行操作,他可以执行以下变换任意次:
    • 选取序列 AA 的两个相邻且互质的元素,将它们交换。

Alice 希望最后得到的序列 AA 字典序最小,Bob 希望最后得到的序列 AA 字典序最大。

两人都执行最优操作,求最后得到的序列 R={r1,r2,,rn}R=\{r_1,r_2,\cdots,r_n\}

输入格式

从文件 permutation.in 中读入数据。

第一行输入一个正整数 nn,表示序列 AA 的长度。
接下来一行,输入 nn 个正整数,第 ii 个正整数表示 aia_i

输出格式

输出到文件 permutation.out 中。

输出一行 nn 个正整数,第 ii 个正整数表示 rir_i

样例

样例输入 1

5
1 2 3 4 5

样例输出 1

5 3 2 4 1

样例解释 1

一种双方都执行最优操作的方案是:

  • Alice 初始时将序列 AA 重排为 {1,2,3,4,5}\{1,2,3,4,5\}
  • Bob 执行以下变换:交换 (4,5)(4,5),交换 (3,5)(3,5),交换 (2,5)(2,5),交换 (1,5)(1,5),交换 (2,3)(2,3),交换 (1,3)(1,3),交换 (1,2)(1,2),交换 (1,4)(1,4)

得到结果 R={5,3,2,4,1}R=\{5,3,2,4,1\}

样例 2

见附加文件中的 permutation2.inpermutation2.ans

该样例满足 ai2000a_i\le 2000

样例 3

见附加文件中的 permutation3.inpermutation3.ans

数据范围与提示

对于 10%10\% 的数据,n5n\le 5
对于 30%30\% 的数据,n20n\le 20
对于 60%60\% 的数据,n100n\le 100
另有 20%20\% 的数据,ai2000a_i\le 2000
对于 100%100\% 的数据,1n20001\le n\le 20001ai1081\le a_i\le 10^8