難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Median Triangulation

作成者 mackerel38

テスター yukimy32

難易度(作成者設定) Lv.7

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

問題文

正整数 NN と長さ NN の正整数列 AA が与えられる。

正 NN 角形があり、頂点には反時計回りに 1,2,…,N1,2,\dots,N の番号が振られている。頂点 ii には AiA_i が書かれている。

この多角形に、内部で交差しないように N−3N-3 本の対角線を引き、N−2N-2 個の三角形に分割する。

各三角形について、その 33 頂点に書かれた整数の中央値を昇順に並べた数列を BB とする。

このようにして得られる BB のうち、辞書順で最大のものを求めよ。

制約

  • 入力はすべて整数である。
  • 3≤N≤2×1053 \le N \le 2 \times 10^5
  • 1≤Ai≤1091 \le A_i \le 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN A1A_1 A2A_2 …\dots ANA_N

出力

辞書順で最大となる数列 BB の各要素を空白区切りで出力せよ。

サンプル

サンプル 1

入力

6
2 7 1 8 4 6

出力

6 6 7 7

頂点 22 と 44、頂点 44 と 66、頂点 22 と 66 をそれぞれ結ぶ対角線を引くと、次の 44 個の三角形に分割される。

  • 頂点 (1,2,6)(1,2,6) からなる三角形:中央値は 66
  • 頂点 (2,3,4)(2,3,4) からなる三角形:中央値は 77
  • 頂点 (4,5,6)(4,5,6) からなる三角形:中央値は 66
  • 頂点 (2,4,6)(2,4,6) からなる三角形:中央値は 77

このとき B=(6,6,7,7)B=(6,6,7,7) となり、これが辞書順で最大である。