站外题求助
  • 板块题目总版
  • 楼主array2022
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/13 11:51
  • 上次更新2024/6/13 18:00:39
查看原帖
站外题求助
690315
array2022楼主2024/6/13 11:51

题目:包含两个不同整数的最长连续子序列

该代码 WA 8 个点

#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],b[100005],ans,x,y,from=1,to=1,f,t;
int main() {
	ios::sync_with_stdio(false);
	cin>>n;
	for (long long i=1; i<=n; i++) {
		cin>>a[i];
		b[a[i]]++;
		to++;
		if (!(a[i]==x||y==a[i])) {
			if (x==0) x=a[i];
			else if (y==0) y=a[i];
			else {
				while (b[x]!=0&&b[y]!=0) {
					b[a[from]]--;
					from++;
				}
				if (b[x]==0) x=a[i];
				else y=a[i];
			}
		}
		if (to-from>ans) {
			f=from;
			t=to;
			ans=to-from;
		}
	}
	cout<<ans<<"\n";
	for (int i=f; i<t; i++) {
		cout<<a[i]<<" ";
	}
	return 0;
}
2024/6/13 11:51
加载中...