AT_abc301_b [ABC301B] Fill the Gaps

题目描述

有一个长度为 $N$ 的正整数数列 $A=(A_1,\ldots,A_N)$。任意相邻的两个元素都不相等。 对于这个数列,按照以下操作插入一些数: 1. 如果数列 $A$ 的所有相邻两项的差的绝对值都是 $1$,则操作结束。 2. 从数列 $A$ 的开头开始,找到第一个相邻两项的差的绝对值不是 $1$ 的位置,记为 $A_i,A_{i+1}$。 - 如果 $A_i < A_{i+1}$,则在 $A_i$ 和 $A_{i+1}$ 之间插入 $A_i+1,A_i+2,\ldots,A_{i+1}-1$。 - 如果 $A_i > A_{i+1}$,则在 $A_i$ 和 $A_{i+1}$ 之间插入 $A_i-1,A_i-2,\ldots,A_{i+1}+1$。 3. 回到步骤 1。 请输出操作结束后的数列。

输入格式

输入以以下格式从标准输入读入: > $N$ $A_1$ $A_2$ $\ldots$ $A_N$

输出格式

请将操作结束后的数列的每个元素用空格分隔输出。

说明/提示

## 限制条件 - $2 \leq N \leq 100$ - $1 \leq A_i \leq 100$ - $A_i \neq A_{i+1}$ - 输入均为整数 ## 样例解释 1 最初,数列为 $(2,5,1,2)$。操作如下进行: - 在第 1 项 $2$ 和第 2 项 $5$ 之间插入 $3,4$,数列变为 $(2,3,4,5,1,2)$。 - 在第 4 项 $5$ 和第 5 项 $1$ 之间插入 $4,3,2$,数列变为 $(2,3,4,5,4,3,2,1,2)$。 ## 样例解释 2 有时一次也不需要插入。 由 ChatGPT 4.1 翻译