#P3466. [POI 2008] KLO-Building blocks

[POI 2008] KLO-Building blocks

Description

nn 柱砖,每柱砖有一个高度,我们现在希望有连续 kk 柱的高度是一样的。

你可以选择以下两个动作:

  1. 从某柱砖的顶端拿一块砖出来,丢掉不要了。
  2. 从仓库中拿出一块砖,放到某一柱,仓库是无限大的。

现在希望用最小次数的动作完成任务,除此之外你还要求输出结束状态时,每柱砖的高度。

Input Format

第一行两个用空格隔开的数表示 n,kn,k

之后 nn 行,第 i+1i+1 行一个数表示第 ii 柱砖的高度 hih_i

Output Format

输出 n+1n+1 行。

第一行一个数表示最小化的答案。

之后 nn 行,每行一个数表示结束后每柱砖的高度。

5 3
3
9
2
3
1
2
3
9
2
2
2

Hint

本题 SPJ 的提示说明(按照 SPJ 判断顺序给出):

Out of Range:输出的数字不在答案可能的范围内。

Wrong Solution:输出方案中不包含连续 kk 个相同高度的柱。

Wrong Result:提交的程序的步数和输出方案的步数不相等。

Expected cost = a,found cost = b:期望步数为 aa,程序的步数为 bb

OK!Correct Answer!:答案正确。

1kn1051 \le k \le n \le 10^50hi1060 \le h_i \le 10^6