#HK4236. 「NordicOI 2023」Ice Cream Machines

「NordicOI 2023」Ice Cream Machines

题目描述

题目译自 NordicOI 2023 T2 「Ice Cream Machines

Arnar 是一个真正的冰岛人,他热爱冰淇淋,今天的天气正好适合去买一些美味的冰淇淋。他冒着暴风雪前往他最喜欢的冰淇淋店。当他到达时,他惊讶地发现前面排队的人异常少;他只是队伍的第 nn 个人!

Arnar 非常了解这家冰淇淋店。他们提供 mm 种不同的口味,并且有 kk 台冰淇淋机。然而,每台机器一次只能提供一种口味,并且机器在装载不同口味之前需要清洗。由于清洗机器需要一些时间,而 Arnar 急着赶时间,他想帮助商店运营商确定每次需要新口味为顾客服务时最佳清洗机器的时间,以尽量减少机器需要清洗的总次数。

幸运的是,冰岛是一个小地方,Arnar 认识排队中的每个人以及他们想要的冰淇淋口味。商店严格执行不插队政策,因此他们将按照顾客到达的顺序为他们服务。你能帮助 Arnar 计算出最少需要清洗冰淇淋机的次数,以便为包括他自己在内的所有人提供服务吗?

最初,所有的冰淇淋机都是空的,需要清洗才能装载它们的第一个口味。一旦一台冰淇淋机装载了特定的口味,它就可以用于为想要该特定口味的任意数量的顾客提供服务,直到机器被清洗并装载不同的口味。一台未使用过的机器不需要清洗。

输入格式

输入的第一行包含三个整数 n,m,kn, m,k,分别表示排队等待的顾客数量、可用的口味数量和冰淇淋机的数量。

接下来 nn 行,第 ii 行包含一个整数 cic_i (1cim)(1 \leq c_i \leq m),表示排队中第 ii 个顾客想要的口味。

输出格式

输出最少需要清洗冰淇淋机的总次数,以便为所有 nn 个顾客提供服务。

8 3 1
2
3
3
1
2
1
1
3
6
8 3 2
2
3
3
1
2
1
1
3
4

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 77 N1000,M10,K=1N \leq 1\,000, M \leq 10, K = 1
22 1212 N1000,M10,K2N \leq 1\,000, M \leq 10, K \leq 2
33 2222 N1000,M10,K5N \leq 1\,000, M \leq 10, K \leq 5
44 1111 N1000,M200,K100N \leq 1\,000, M \leq 200, K \leq 100
55 1414 N2105,M500,K100N \leq 2 \cdot 10^5, M \leq 500, K \leq 100
66 1313 $N \leq 2 \cdot 10^5, M \leq 2 \cdot 10^5, K \leq 100$
77 2121 $N \leq 2 \cdot 10^5, M \leq 2 \cdot 10^5, K \leq 2 \cdot 10^5$