CF1195A.Drinks Choosing

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Drinks Choosing

题目描述

夏季信息学学校的老学员们还记得以前的夏令营,在晚餐时每个学生都能得到自己喜欢的饮料。或者,这个故事其实更复杂?

现在有 nn 个学生住在一栋楼里,每个学生最喜欢的饮料 aia_i 已知。也就是说,你知道 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,其中 aia_i1aik1 \le a_i \le k)表示第 ii 个学生喜欢的饮料类型。饮料类型编号为 11kk

饮料套餐的数量是无限的。每份套餐包含两份相同类型的饮料。换句话说,总共有 kk 种套餐,第 jj 种套餐包含两份第 jj 种饮料。每种套餐的数量都是无限的。

你知道,为了让所有学生都能恰好得到一份饮料,学生们会拿到最少数量的套餐。显然,套餐的数量恰好是 n2\lceil \frac{n}{2} \rceil,其中 x\lceil x \rceil 表示对 xx 向上取整。

在学生们拿到套餐后,他们会自行分配饮料:每个学生恰好得到一份饮料。注意,如果 nn 是奇数,则会剩下一份饮料没有人喝,这份饮料会被老师喝掉。

如果选择 n2\lceil \frac{n}{2} \rceil 份套餐最优地,并且学生们最优地分配饮料,最多有多少学生能喝到自己最喜欢的饮料?

输入格式

输入的第一行包含两个整数 nnkk1n,k10001 \le n, k \le 1000),分别表示学生人数和饮料种类数。

接下来的 nn 行,每行一个整数,表示每个学生喜欢的饮料类型,第 ii 行的整数是 aia_i1aik1 \le a_i \le k

输出格式

输出一个整数,表示最多有多少个学生能喝到自己喜欢的饮料。

说明/提示

在第一个样例中,学生们可以选择三份饮料套餐,分别是 111122(即两份类型为 11 的套餐和一份类型为 22 的套餐,得到的饮料份数为 1,1,1,1,2,21, 1, 1, 1, 2, 2)。这样,除了第二个学生外,其他学生都能喝到自己喜欢的饮料。

另一种可行的方案是选择 112233 三种套餐,这样得到的饮料份数为 1,1,2,2,3,31, 1, 2, 2, 3, 3。此时,除了一个学生外,其他学生都能喝到自己喜欢的饮料。唯一喝不到喜欢饮料的学生是 ai=1a_i = 1 的某个学生(即第一个、第三个或第四个)。

由 ChatGPT 4.1 翻译

样例

5 3
1
3
1
1
2
4
10 3
2
1
3
2
3
3
1
3
1
2
9

在线编程 IDE

建议全屏模式获得最佳体验