给定一个长度为 n 的整数序列。在一个连续区间内,选出两个不同位置 p,q,满足 p\lt q 且 a_p=a_q,就构成一个相同数对。
数对之间允许共用位置。 例如,[5,5,5] 有 3 个相同数对,分别由第 1,2 个、第 1,3 个和第 2,3 个元素组成。
求包含至少 k 个相同数对的最短非空连续区间长度。如果不存在,输出 -1。
第一行输入两个整数 n,k。第二行输入 n 个整数 a_1,a_2,\ldots,a_n。
输出一个整数,表示最短区间长度;如果不存在,输出 -1。
6 3 1 2 1 1 3 2
4
12 13 1 2 3 4 1 2 3 4 1 2 3 4
-1
30 20 3 1 3 2 1 3 4 2 3 1 2 4 4 3 2 1 3 3 4 2 1 2 3 4 1 3 2 4 3 1
14
区间 [1,4] 为 [1,2,1,1]。其中值为 1 的位置是 1,3,4,构成数对 (1,3)、(1,4)、(3,4),共 3 对。
这些数对可以共用位置。所有长度不超过 3 的区间都不足 3 对,因此最短长度为 4。
整个序列中,四种数各出现 3 次,共有 4\times3=12 个相同数对。任何区间都不可能达到 13 对,因此输出 -1。
对于所有测试数据,保证:1\le n\le10^5,1\le k\le5\times10^9,1\le a_i\le10^6。
本题共 20 个测试点,每个测试点 5 分,各测试点独立计分。
| 测试点编号 | n\le | 特殊性质 |
|---|---|---|
| 1 | 1 | 无 |
| 2 \sim 3 | 10 | 无 |
| 4 \sim 7 | 10^3 | 无 |
| 8 \sim 10 | 10^5 | A |
| 11 \sim 13 | 10^5 | B |
| 14 \sim 20 | 10^5 | 无 |
特殊性质 A:所有 a_i 均相同。
特殊性质 B:k=1。