```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1000010];
int use[2010],cnt;
int ansl,ansr,sum,l=1,r=1;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
ansr=1e9;
while(r<=n+1)
{
if(cnt==m)
{
if(r-l+1<ansr-ansl+1)
ansl=l,ansr=r;
use[a[l]]--;
if(use[a[l]]==0)cnt--;
l++;
}
else
{
if(use[a[r]]==0)cnt++;
use[a[r]]++;
r++;
}
}
cout<<ansl<<" "<<ansr-1;
return 0;
}
```
上面的代码测试过AC了,其实这个代码不是很标准,可以看一下标准代码
by yu18250787255 @ 2023-12-23 19:47:19