题目描述
题目译自 XXXI Olimpiada Informatyczna – III etap Stacje benzynowe
Bajtocja 的总理将沿主高速公路前往探访党内议员,电视正紧急直播这一行程。总理的车满油可直达目的地,但他决定在途中多次停车加油,亲自操作以展现亲民形象,提升公众好感。
高速公路每英里设有一座加油站,分别隶属 m 个连锁网络。总理希望在尽可能多的加油站停留加油。然而,顾问警告,若在连续 k 次加油中有两次发生在同一网络的站点,可能被视为偏袒该网络,引发形象危机。总理会避免这一失误。
给定高速公路上各加油站的网络编号和参数 k,你的任务是计算满足顾问条件的最长加油站子序列长度。
输入格式
第一行包含三个整数 n,m,k (1≤n,m≤10000,2≤k≤5),分别表示加油站数量、连锁网络数量和顾问给定的参数。
第二行包含 n 个整数 ai (1≤ai≤m),第 i 个数表示第 i 座加油站所属的网络编号。
输出格式
输出一行,包含一个正整数 t,表示满足任意连续 k 次加油不含同一网络两次的最大加油次数。
8 4 3
1 1 2 1 3 4 4 2
5
在任意连续 k=3 次加油中,不能有两次在同一网络的站点。例如,选择编号为 2,3,5,6,8 的站点(网络依次为 1,2,3,4,2),可实现 5 次加油,满足条件。
附加样例
- n=4,m=2,k=2,ai=min(i,5−i),答案为 3。
- n=100,m=2,k=3,ai=imod2+1,答案为 2。
- n=10,m=10,k=5,ai=i,答案为 10。
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务编号 |
附加限制 |
分值 |
| 1 |
k=2 |
10 |
| 2 |
k=3 |
22 |
| 3 |
k=4 |
23 |
| 4 |
k=5,m≤10,n≤100 |
21 |
| 5 |
无附加限制 |
24 |