9分求救
查看原帖
9分求救
1355403
HarrycodingH楼主2024/10/20 00:13

输出a的值有问题(即ansl)

#include <bits/stdc++.h>
using namespace std;
int n,m,l=1,r=1,sum[2005],a[10000100],ans=10000100,ansl,ansr,num;
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/20 00:13
加载中...