atcoder#ABC301B. [ABC301B] Fill the Gaps

[ABC301B] Fill the Gaps

配点 : 200200

問題文

正整数からなる長さ NN の数列 A=(A1,,AN)A=(A_1,\ldots,A_N) があります。どの隣接する 22 項の値も相異なります。

この数列に対し、次の操作によりいくつか数を挿入します。

  1. 数列 AA のどの隣接する 22 項の差の絶対値も 11 であるとき、操作を終了する。
  2. 数列 AA の先頭から見て、隣接する 22 項の差の絶対値が 11 でない最初の箇所を Ai,Ai+1A_i,A_{i+1} とする。- Ai<Ai+1A_i < A_{i+1} ならば、AiA_iAi+1A_{i+1} の間に、Ai+1,Ai+2,,Ai+11A_i+1,A_i+2,\ldots,A_{i+1}-1 を挿入する。
    • Ai>Ai+1A_i > A_{i+1} ならば、AiA_iAi+1A_{i+1} の間に、Ai1,Ai2,,Ai+1+1A_i-1,A_i-2,\ldots,A_{i+1}+1 を挿入する。
  3. 手順 1 に戻る。

操作が終了したときの数列を出力してください。

制約

  • 2N1002 \leq N \leq 100
  • 1Ai1001 \leq A_i \leq 100
  • AiAi+1A_i \neq A_{i+1}
  • 入力は全て整数

入力

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

NN

A1A_1 A2A_2 \ldots ANA_N

出力

操作が終了したときの数列の各要素を空白区切りで出力せよ。

4
2 5 1 2
2 3 4 5 4 3 2 1 2

最初、数列は (2,5,1,2)(2,5,1,2) です。操作は以下のように行われます。

  • 11 項目の 2222 項目の 55 の間に 3,43,4 を挿入する。数列は (2,3,4,5,1,2)(2,3,4,5,1,2) となる。
  • 44 項目の 5555 項目の 11 の間に 4,3,24,3,2 を挿入する。数列は (2,3,4,5,4,3,2,1,2)(2,3,4,5,4,3,2,1,2) となる。
6
3 4 5 6 5 4
3 4 5 6 5 4

一度も挿入が行われないこともあります。