P4650 [COCI 2017/2018 #5] Karte
题目描述
有$N$ 张牌叠在一起,第 $i$ 张牌上,有一个数字 $a_i$ 表示它下面**至少**有 $a_i$ 张牌上的信息是错误的,若它下面确实有至少 $a_i$ 张牌的信息是错误的,那这张牌的信息就是正确的,否则这张牌的信息就是错误的。(我们认为最下面的牌的后面有 $0$ 张错误的)
现在需要你重新调整牌的顺序,使得正好有 $K$ 张牌上的信息是错误的。
输入格式
第一行两个正整数 $N$ 和 $K$ $( 1 ≤ N≤ 5×10^5,0 ≤ K≤ N )$表示牌的张数和要求的错误信息的个数。
接下来 $N$ 行,每行一个数,表示对应的 $a_i$ $(0 ≤ a_i≤ 5×10^5 )$
输出格式
如果调整方案不存在,输出$-1$。否则输出由顶部到底部 $N$ 张牌对应的 $a_i$,若有多种方案,输出任意一种即可。
说明/提示
$30\%$的数据 $N≤ 16$。
另有$40\%$的数据 $N≤ 2000$。
**样例 2 说明:**
第 $5$ 张牌上写的是$2$,但是其后面只有 $0$ 张错误,所以它是错误的。
第 $4$ 张牌上写的是$1$,其后面有 $1$ 张错误(第五张),所以它是正确的。
第 $3$ 张牌上写的是$0$,其后面有 $1$ 张错误(第五张),所以它是正确的。
第 $2$ 张牌上写的是$3$,但是其后面只有 $1$ 张错误(第五张),所以它是错误的。
第 $1$ 张牌上写的是$3$,但是其后面只有 $2$ 张错误(第五张,第二张),所以它是错误的。
因此总共有 $3$ 张是错误的。