求助,91pts,#3TLE
查看原帖
求助,91pts,#3TLE
543206
shiroko2008楼主2022/1/23 22:11
using namespace std;
int m,n;
bool isf (bool *isa,int *pic,int a,int b) {
	for (int i=a;i<b;i++) {
		isa[pic[i]]=1;
	}
	for (int i=1;i<=n;i++) {
		if (isa[i]==0) return 0;
	}
	for (int i=1;i<=n;i++) isa[i]=0;
	return 1;
}
int main()
{
	cin>>m>>n;
	int pic[m];
	for (auto &c:pic) cin>>c;
	int i=0,j=n,ansa=1<<30,ansb=1<<30,minlen=1<<30;
	bool isa[n+1]{0};
	isa[0]=1;
	do {
		if (isf(isa,pic,i,j)) {if (j-i<minlen) { ansa=i;ansb=j;minlen=j-i;}i++;}
		else j++;
	} while (j<=m&&i<j);
	cout<<ansa+1<<' '<<ansb;
	return 0;
}
2022/1/23 22:11
加载中...