为什么45???
查看原帖
为什么45???
402880
这有只蒟蒻呢_楼主2022/8/28 10:44
#include<stdlib.h>
#include<cctype>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<stack>
#include<map>
#include<vector>
#include<string>
#define ll long long
using namespace std;
int n,m,s,ans=2000000;
int al,ar;
int t[2010],a[1001000];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) scanf("%d",a+i);
	int l=1,r=1;
	s=1;
	t[a[1]]=1;
	while(l<n){
		while(s<m&&r<n){
			r++;
			if(t[a[r]]==0) s++;
			t[a[r]]++;	
		}
		if(s<m) break;
		while(s==m&&l<r){
			if(t[a[l]]==1) break;
			else t[a[l]]--,l++;
		}
		if(r-l+1<ans){
			ans=r-l+1;
			al=l,ar=r;
		}
		if(t[a[l]]==1) s--;
		else t[a[l]]--;
		l++;
	}
	cout<<al<<" "<<ar;
	return 0;
}
2022/8/28 10:44
加载中...