#ABC301B. 填补空缺

填补空缺

填补空缺

题目描述

我们有一个由正整数组成、长度为 NN 的数列 A=(A1,,AN)A=(A_1,\ldots,A_N)。任意两个相邻的项取值不同。

按下述操作向该数列中插入一些数。

  1. 若数列 AA 中任意相邻两项的差的绝对值都为 11,则终止操作。
  2. Ai,Ai+1A_i, A_{i+1} 为从数列 AA 的开头数起、差的绝对值不为 11 的第一对相邻项。
    • Ai<Ai+1A_i \lt 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 \gt 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。

输出操作终止时的数列。

输入格式

输入按以下格式从标准输入给出:

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)。操作过程如下。

  • 在第 1 项的 22 和第 2 项的 55 之间插入 3,43,4,数列变为 (2,3,4,5,1,2)(2,3,4,5,1,2)
  • 在第 4 项的 55 和第 5 项的 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

也可能一次插入都不会进行。

数据范围

  • 2N1002 \le N \le 100
  • 1Ai1001 \le A_i \le 100
  • AiAi+1A_i \neq A_{i+1}
  • 输入中的所有值均为整数。
难度 普及-
通过率
尝试 0
已通过 0
ID
2926
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签