問題一覧 > 通常問題

No.490 yukiソート

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 342
作問者 : square1001 / テスター : e869120
7 ProblemId : 1398 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2018-03-10 02:17:12

問題文

ソートとは, 数列を適切な順番に並び替えることです。
特に, 昇順ソートとは, 数列を昇順に並び替えることです。

yuki君は誕生日プレゼントに数列 a0,a1,,an1 をもらいました。
彼はソートが大好きなので, いろいろなソートの方法で数列aをソートしました。
30種類くらいのアルゴリズムで数列aをソートしたyuki君は, 自分でもアルゴリズムを作ってみようと思いました!

そこで, 次の「yukiソート」という方法を考えました。


  1. i (0<i<2n3) に対して、i の小さい順に 2. を行う
  2. p+q=i (0p<qn1) を満たす整数の組 (p,q) 全てに対して、ap>aq ならば apaq を交換する

yuki君は, このソートの方法が正しいかどうか分からなかったので, yuki君の友達でありかつ競プロerであるあなたに調べてもらうことにしました。
整数 n と 数列 a0,a1,,an1 が与えられるとき, yukiソートした後の数列を求めなさい。
(交換順に関わらず一意の結果になることに注意)

入力

n
a0 a1 ... an1

1行目に整数 n (2n2000) が与えられる。
2行目に数列の要素 a0,a1,a2,,an1 (1ai109) が与えられる。

出力

yukiソートした後の数列 a を空白区切りで出力しなさい。
最後の改行を忘れないこと。

サンプル

サンプル1
入力
15
3 1 4 1 5 9 2 6 5 3 5 8 9 7 9
出力
1 1 2 3 3 4 5 5 5 6 7 8 9 9 9

a={3,1,4,1,5,9,2,6,5,3,5,8,9,7,9} の場合, yukiソートで正しくソートされます。

サンプル2
入力
5
1 2 3 4 5
出力
1 2 3 4 5

数列はすでにソートされています。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。