atcoder#ABC301B. [ABC301B] Fill the Gaps

[ABC301B] Fill the Gaps

题目描述

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

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

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

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

输入格式

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

N N A1 A_1 A2 A_2 \ldots AN A_N

输出格式

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

题目大意

给你一个长度为 nn 的数列,保证任意相邻的两个数不相等。尽可能多的插入一些数,使得 aia_iaja_j 间的这个数列具有单调性,最后输出插入后的数组。

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

提示

制約

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

Sample Explanation 1

最初、数列は (2,5,1,2) (2,5,1,2) です。操作は以下のように行われます。 - 1 1 項目の 2 2 2 2 項目の 5 5 の間に 3,4 3,4 を挿入する。数列は (2,3,4,5,1,2) (2,3,4,5,1,2) となる。 - 4 4 項目の 5 5 5 5 項目の 1 1 の間に 4,3,2 4,3,2 を挿入する。数列は (2,3,4,5,4,3,2,1,2) (2,3,4,5,4,3,2,1,2) となる。

Sample Explanation 2

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