编程题
### 问题描述 小明是一名清洁工,他的工作是清理一个拥有 $n$ 个房间的宾馆。宾馆的房间编号为 $1$ 至 $n$。小明每天都会进入一个房间,如果这个房间已经被清理过,他就会将房间编号 $+1$,进入下一个房间。如果这个房间还没有被清理过,他就会将这个房间清理干净,并将它后面的所有房间编号都向前移动一位。 小明想知道,最少需要清理多少个房间,才能够保证至少有 $k$ 个房间的编号与它们在初始状态时的编号相同。 请你写一个程序,帮助小明计算最少需要清理的房间数。 ### 输入格式 第一行包含两个整数 $n$ 和 $k$($1\leq k\leq n\leq 2\times 10^3$),表示房间的数量和要求编号相同的房间数量。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1\leq a_i \leq n$),表示宾馆初始状态下每个房间的编号。 ### 输出格式 输出一个整数,表示最少需要清理的房间数。如果不存在一种方案能够满足要求,则输出 $-1$。 ### 样例输入 ``` 5 2 3 5 2 4 3 ``` ### 样例输出 ``` 2 ```
查看答案
赣ICP备20007335号-2