#P1005. [QY-001-Div.3] B.村落的馈赠

[QY-001-Div.3] B.村落的馈赠

题目描述

古法兰克地区有一片黄沙障壁的荒芜之地,沙尘深处衍生出了一片远离尘嚣的村落,探险家 @zls_XICK 意外发现了这个遗失村落,并帮助村民完成了对神明的祈祷工作。

村落的正中央矗立着一株繁茂的石榴树,村民们在树前搭建了 NN 个祭坛,每年村民都会将树上掉落的石榴摆布在祭坛上,为了表示长久而崇高的敬仰,这 NN 个祭坛上摆布的石榴 a1a_1 ~ aNa_N 恰好是 11 ~ NN 的一个排列,同时为了避讳,村民对祭坛上的石榴数作出如下约束:

  • 对于每个祭坛石榴数 aia_i 需满足 aiia_i≠i

摆放石榴的方式有很多种,而每种方式为村落带来的神祈值 SS 可能会有所不同,其中S的计算方式如下:

  • S=a11+a22+a33+...+annS=|a_1-1| + |a_2-2| + |a_3-3| + ... + |a_n-n|

也就是每个祭坛石榴数与祭坛编号的差值之和。

探险家 @zls_XICK 在帮助村民算出最小神祈值 SS 之后,村民说道,外来者可以得到另一份神明的馈赠,只需要将祝福后的石榴以神祈值 SS 最大的摆放方式放回祭坛中就可以得到馈赠,而这馈赠的大小取决于摆放的顺序。摆出的石榴数组成的序列字典序越小,这份馈赠就越大。

现在,你需要帮助他求出使神祈值 SS 最大的字典序最小的摆放方式。

为了防止新手不理解字典序,这里做出通俗解释:

对于两个等长序列,依次比较逐位大小,相等则比较下一位,否则当位较小的序列字典序较小。如序列 [1,1,4,5,1,4][1,1,4,5,1,4][1,9,1,9,8,1][1,9,1,9,8,1] 相比,前者字典序更小。

输入格式

输入一行一个整数 NN,表示祭坛数。

输出格式

输出一行 NN 个整数,第 ii 个数表示字典序最小的方案中第 ii 个祭坛应摆放的石榴数,整数间用空格隔开。

若不存在合理的摆放方式,输出一个整数 1-1

3
2 3 1

数据规模与约定

对于 20%20\% 的数据保证 1N81 \le N \le 8

对于另外 20%20\% 的数据保证 1N5×1031 \le N \le 5\times 10^3

对于 100%100\% 的数据保证 1N3×1061 \le N \le 3\times 10^6