Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:N/A 空间限制:N/A

#3532. 「BalkanOI 2018 Day2」Zalmoxis

Statistics

题目描述

翻译自 BalkanOI 2018 Day2 T3「Zalmoxis

ZalPunch 是一种修改数列的方式,每次 ZalPunch 可以将数列中的任意一个正整数 $x$ 原地替换成两个 $(x-1)$。

  • 正确示范:$[1, 1]\xrightarrow{ZalPunch}[0, 0, 1]$;
  • 正确示范:$[1,23,3]\xrightarrow{ZalPunch}[1,22,22,3]$;
  • 错误示范:$[1,3]\xrightarrow{ZalPunch}[2,1,2]$(第一个 2 不在原位)。

从数列 $[30]$ 开始,用 ZalPunch 修改该数列任意多次,所得到的所有数列都称为 ZalSequence(含数列 $[30]$)。
给你一个有 $N$ 项的数列 $S$,请在其中插入 $K$ 个数(不是使用 $K$ 次 ZalPunch),使之变成 ZalSequence。保证有解。

输入格式

第一行有两个整数 $N, K$。
第二行有 $N$ 个整数,表示数列 $S$。

输出格式

输出 $N+K$ 个整数,表示新数列。

样例 1

input

5 1
29 27 25 25 28

output

29 27 25 25 26 28

$[30] → [29, 29] →[29, 28, 28] →[29, 27, 27, 28] $ $→[29, 27, 26, 26, 28] $ $→ [29, 27, 25, 25, 26, 28]$

样例 2

input

1 5
29

output

29 28 27 26 25 25

$[30] → [29, 29] →[29, 28, 28] →[29, 28, 27, 27] $ $→[29, 28, 27, 26, 26] $ $→[29, 28, 27, 26, 25, 25]$

数据范围与提示

对于 $30\%$ 的数据,$K=1$。
对于所有数据,$1 ≤ N,K ≤ 10^6, $ $1 ≤ N + K ≤ 10^6$。