很想下载测试数据,但是实名过后来下载提示我没有次数了orz
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N =500+10;
int ans = 0;
int k;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,m,a=1,b=1;
cin>>n>>m;
vector<int> v;//画家访问情况
v.assign(m+1,0);
vector<int> p;//画
p.assign(n+1,0);
ans=n;
for(int i=1;i<=n;i++){
cin>>p[i];
}
int s=0;
for(int l=1,r=1;r<=n;r++){
if(!v[p[r]]) {
s++;
}
v[p[r]]++;
while(l<r){
if(v[p[l]]-1>=1) {
v[p[l]]--;
l++;
}
else break;
}
if(s==m){
if(ans>r-l+1){
ans=r-l+1;
a=l,b=r;
}
if(ans==m) break;
}
}
cout<<a<<" "<<b;
return 0;
}
、