91pts求助
查看原帖
91pts求助
543206
shiroko2008楼主2022/1/22 18:02

#3 TLE

#include<iostream>
using namespace std;
int m,n,p=1;
int main()
{
	cin>>m>>n;
	int pic[m];
	for (auto &c:pic) cin>>c;
	int i=0,j=1,ansa=1<<30,ansb=1<<30,minlen=1<<30;
	int isa[n+1]{0};
	isa[0]=1;
	while (j<=m&&i<j){
		p=1;
		for (auto z:isa) if (z==0) {p=0;break;}
		if (p) { 
			isa[pic[i]]--;
			i++;
			if (j-i<minlen) { 
				//cout<<"change";
				//for (auto &z:isa) cout<<z<<' ';
				ansa=i;
				ansb=j;
				minlen=j-i;
			}
		}
		else {
			isa[pic[j]]++;
			j++;
		}
		//cout<<i<<' '<<j<<endl;
	}
	cout<<ansa+1<<' '<<ansb;
	return 0;
}
2022/1/22 18:02
加载中...