第五个点WA了
下面是代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N],vis[2005];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
int low=m-1,high=n,ansl,ansr;
while(low<high-1)
{
int mid=(low+high)/2;
bool f=0;
int cnt=0;
memset(vis,0,sizeof(vis));
for(int r=1;r<=n;r++)
{
vis[a[r]]++;
if(vis[a[r]]==1)
cnt++;
if(r>mid)
{
vis[a[r-mid]]--;
if(vis[a[r-mid]]==0)
cnt--;
}
if(cnt==m)
{
f=1,ansr=r,ansl=r-mid+1;
break;
}
}
if(f==0)
low=mid;
else high=mid;
}
cout<<ansl<<" "<<ansr;
return 0;
}