射箭
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
FJ喜欢给射箭选手打分,他的打分规则如下:选手共射出n支箭,每单位时间射出1支箭。环数的可能种类为1到m(共m种),若选手能在某段连续的箭中包含所有1到m的环数,这段连续箭对应的时间段长度(即箭的数量)就是候选得分。请你找出最短的候选得分;若选手的n支箭中始终未包含所有1到m的环数,则输出-1。
输入格式
- 第一行包含两个整数n和m,分别表示箭的总数和环数的种类数(1 ≤ n ≤ 1000000,1 ≤ m ≤ 2000)。
- 第二行包含n个整数,依次表示每支箭的环数(所有环数均在1到m之间)。
输出格式
输出一个整数。若存在包含所有1到m环数的连续箭段,输出最短的该段长度;若无法覆盖所有环数,则输出-1。
样例输入
12 5
2 5 3 1 3 2 4 1 1 5 4 3
样例输出
6
样例说明
样例输入中,n=12(共12支箭),m=5(需包含1、2、3、4、5所有环数),12支箭的环数依次为2、5、3、1、3、2、4、1、1、5、4、3。
在所有包含1-5全部环数的连续箭段中,最短的是长度为6的段(例如从第2支箭“5”到第7支箭“4”,这段箭的环数为5、3、1、3、2、4,覆盖了1-5所有环数),因此输出6。