WA *2,找不出啥错误。
/ll
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define up(l,r,i) for(int i=(l);i<=(r);++i)
constexpr int N=2e5+9;
ll n,a[N],l=1,r=0,qwq,ans;
map<ll,ll> cnt;
int main()
{
cin>>n;up(1,n,i)cin>>a[i];
while(r<n){
while(r<n){
++r;++cnt[a[r]];
if(cnt[a[r]]==2||cnt[a[r]]==0)--qwq;
else ++qwq;
if(qwq==0)ans=max(ans,r-l+1);
if(cnt[a[r]]>2)break;
}
while(cnt[a[r]]>2&&l<r){
cnt[a[l]]--;
if(cnt[a[l]]==2||cnt[a[l]]==0)--qwq;
else ++qwq;
++l;
if(qwq==0)ans=max(ans,r-l+1);
}
}
while(l<r){
cnt[a[l]]--;
if(cnt[a[l]]==2||cnt[a[l]]==0)--qwq;
else ++qwq;
++l;
if(qwq==0)ans=max(ans,r-l+1);
}
cout<<ans;
return 0;
}