#M0011. 分组

    ID: 1007 传统题 文件IO:team 1000ms 512MiB 尝试: 3 已通过: 2 难度: 普及+/提高− 上传者: 标签>CSP-S复赛T1贪心二分答案2026模拟

分组

题目描述

本题使用文件输入输出:输入文件名为 team.in,输出文件名为 team.out。

nn 名同学参加编程营,第 ii 名同学来自学校 aia_i(用一个正整数编号表示)。

营地要把同学们分成若干个小组,每个小组恰好 kk 人,并且同一小组内的 kk 人必须来自 kk 所不同的学校。每名同学最多只能加入一个小组,也可以不加入任何小组。

请你求出最多能分出多少个小组。

输入格式

输入文件名为 team.in。

第一行两个整数 n,kn, k。

第二行 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n,表示每名同学所在学校的编号。

输出格式

输出文件名为 team.out。

一行一个整数,表示最多能分出的小组数。

样例 #1

样例输入 #1

7 2
1 1 1 2 2 3 3

样例输出 #1

3

样例解释

一种分法:{1,2}\{1, 2\}、{1,2}\{1, 2\}、{1,3}\{1, 3\},剩下一名学校 33 的同学不分组。77 人最多也只能分 33 组。

样例 #2

样例输入 #2

6 3
5 5 5 5 1 2

样例输出 #2

1

样例解释

只有 33 所不同的学校,而学校 11 和学校 22 各只有一人,所以最多只能组成一个小组 {5,1,2}\{5, 1, 2\}。

样例 #3

样例输入 #3

5 2
7 7 7 7 7

样例输出 #3

0

提示

数据范围

  • 对于 30%30\% 的数据:n≤12n \le 12;
  • 对于 60%60\% 的数据:k=2k = 2;
  • 对于 100%100\% 的数据:1≤k≤n≤2×1051 \le k \le n \le 2 \times 10^5,1≤ai≤1091 \le a_i \le 10^9。