CF2025C.New Game
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Monocarp 想玩一个新游戏。这个游戏使用一副有 n 张牌的牌堆,第 i 张牌上写着一个整数 ai。
游戏开始时,在第一回合,Monocarp 可以从牌堆中拿走任意一张牌。在之后的每一回合,Monocarp 只能拿走一张牌,这张牌上写的数字要么与上一回合拿走的牌上的数字相同,要么比上一回合拿走的牌上的数字大 1。
换句话说,如果上一回合 Monocarp 拿走的牌上的数字是 x,那么这一回合他可以拿走数字为 x 或 x+1 的任意一张牌,无论它在牌堆中的位置如何。
每当 Monocarp 拿走一张牌,这张牌就会从牌堆中移除。
根据游戏规则,Monocarp 拿走的牌上所写的不同数字的数量不能超过 k。
如果在某一回合后,Monocarp 无法在不违反上述规则的情况下继续拿牌,游戏就结束。
你的任务是:给定初始牌堆,求 Monocarp 在游戏中最多能拿走多少张牌。第一回合可以拿任意一张牌。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 k(1≤k≤n≤200000),分别表示牌堆中的牌数和 Monocarp 能拿的牌上不同数字的最大数量。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示每张牌上的数字。
输入的额外限制:所有测试用例中 n 的总和不超过 200000。
输出格式
对于每个测试用例,输出一行,表示 Monocarp 在游戏中最多能拿走的牌数。
输入输出样例
输入#1
4 10 2 5 2 4 3 4 3 4 5 3 2 5 1 10 11 10 11 10 9 3 4 5 4 4 6 5 4 4 6 3 2 1 3 1
输出#1
6 3 9 2
说明/提示
在第一个样例中,Monocarp 需要先拿任意一张数字为 3 的牌。接下来的两回合,他需要拿剩下的两张数字为 3 的牌。再接下来的三回合,他需要拿三张数字为 4 的牌。之后,Monocarp 将无法再拿牌,此时他一共拿了 6 张牌。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?