#abc473c. Change Schools

    ID: 4395 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>普及/提高-桶计数最值维护分类讨论

Change Schools

题目描述

现在 AtCoder 高中有 KK 个班级和 NN 名学生,第 ii 名学生 (1≤i≤N)(1 \le i \le N) 属于第 AiA_i 个班级。

高橋君将从 99 月起转学到 AtCoder 高中。转学时,他可以从 KK 个班级中任选一个加入。

如果存在某个班级的人数比他所在班级的人数多,他就会难过;否则他就会开心。

请求出:他加入之后会让他开心的班级共有多少个。

输入格式

N K
A_1 A_2 ... A_N

输出格式

输出满足条件的班级个数。

输入示例 1

8 5
3 3 5 5 4 4 3 2

输出示例 1

3

示例 1 说明

原本各班人数为:第 11 班 00 人、第 22 班 11 人、第 33 班 33 人、第 44 班 22 人、第 55 班 22 人。

例如高橋君选择第 55 班,则第 55 班变成 33 人。此时没有任何班级的人数超过 33 人,所以他开心。

而如果他选择第 11 班,则第 11 班变成 11 人。此时第 33 班有 33 人,比 11 多,所以他难过。

当且仅当选择第 3,4,53, 4, 5 班时他会开心,故输出 3。

输入示例 2

6 1
1 1 1 1 1 1

输出示例 2

1

示例 2 说明

学校也可能只有 11 个班级。此时无论如何都不存在「别的班级」,他必然开心,答案是 11。这组数据用来检验代码在只有一个班时会不会误判。

输入示例 3

14 8
6 1 5 3 8 4 3 4 3 5 1 2 5 1

输出示例 3

4

示例 3 说明

各班人数为:第 11 班 33 人、第 22 班 11 人、第 33 班 33 人、第 44 班 22 人、第 55 班 33 人、第 66 班 11 人、第 77 班 00 人、第 88 班 11 人。

最大人数是 33,且有三个班级并列最大(第 1,3,51, 3, 5 班)。选这三个班中的任意一个,该班变成 44 人,仍是最多,开心;选第 44 班变成 33 人,与并列最大的 33 持平,也开心。所以答案是 44。

这组数据专门用来检验最大值有并列时的处理:若把「最大值」一律当成唯一的来减掉,会算成 33,答案就错了。

约束条件

  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 1≤K≤N1 \le K \le N
  • 1≤Ai≤K (1≤i≤N)1 \le A_i \le K \ (1 \le i \le N)
  • 所有输入值均为整数