#P9202. 「GMOI R2-T2」猫耳小(加强版)

    ID: 8448 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>贪心洛谷原创Special JudgeO2优化洛谷月赛

「GMOI R2-T2」猫耳小(加强版)

题目背景

本题与 原题 的区别在于数据范围和输出格式。在这一版本中,n106n\le 10^6,值域为 10910^9,你需要给出构造。

题目描述

小 R 是一个可爱的猫耳女孩子,她喜欢研究数列的 mex*\operatorname{mex}\text{*}

现在她有一个长度为 nn 的数列 aa。她讨厌整数 kk,因此她希望修改数列 aa 的若干个元素为任意自然数,使得 aa 的任意连续非空子串mex\operatorname{mex} 都不等于 kk

请你求出最少需要修改多少个元素,并给出方案。

*\text{*} 本题中,数列的 mex\operatorname{mex} 被定义为数列中最小未出现的自然数,例如:

  • mex{1,2,3}=0\operatorname{mex}\{1,2,3\}=0,因为 00 是自然数。
  • mex{0,1,3}=2\operatorname{mex}\{0,1,3\}=2
  • mex{0,1,2}=3\operatorname{mex}\{0,1,2\}=3

输入格式

第一行两个整数 n,kn,k,表示数列长度和小 R 讨厌的数。

第二行 nn 个整数,第 ii 个整数为 aia_i,表示这个数列的第 ii 项。

输出格式

第一行一个整数,表示最少需要修改的元素个数。

第二行 nn 个整数,表示修改后的数列。你需要保证修改后的数列的每个数在 [0,109]Z[0,10^9]\cap\Z 的范围内。

5 2
1 0 1 3 0
2
1 1 1 3 2

提示

样例解释

一种方案是将 {1,0,1,3,0}\{1,0,1,3,0\} 改为 {1,1,1,3,2}\{1,1,1,3,2\},共改动两个元素。

可以证明不存在更优的方案。


评分方式

本题采用自定义校验器(Special Judge)进行评测。

对于每个测试点,如果你的最小步数正确,可以得到 30%30\% 的分数。在此基础上,如果方案也正确,可以得到满分。

请注意:即使你不会给出方案,也请按照输出格式在第二行输出 nn 个整数。


本题采用捆绑测试,数据无梯度。

对于 100%100\% 的数据,1n1061\le n\le 10^60k,ai1090\le k,a_i\le 10^9

本题读写量较大,建议使用效率较高的读写方式。