45pts,脑子炸了
查看原帖
45pts,脑子炸了
973480
封禁用户楼主2024/10/14 20:29
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int n,m,a[maxn],sum[2001],num=0,l=1,r=1;
int ansl,ansr,ans=maxn;
int main(){
	cin >> n >> m;
	for(int i=1;i<=n;i++) cin >> a[i];
	while(l<=r&&r<=n+1){
		if(num<m){
			r++;
			sum[a[r-1]]++;
			if(sum[a[r-1]]==1) num++;
		}else{
			if(ans>=r-1){
				ans=r-1;
				ansl=l;
				ansr=r-1;
			}
			sum[a[l]]--;
			if(sum[a[l]]==0) num--;
			l++;
		}
	}
	cout << ansl << " " << ansr;
	return 0;
}
2024/10/14 20:29
加载中...