#include<bits/stdc++.h>
using namespace std;
int a[50050],b[50050];
set<int> sta,stb;
set<int> ::iterator it;
int main()
{
long long n,i,j,ans,tag,res,flag;
while(cin>>n)
{
sta.clear();
stb.clear();
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[n-1-i]=a[i];
}
ans=tag=res=0;
for(i=0;i<n;i++)
{
it=sta.find(a[i]);
if(it!=sta.end())
{
ans+=res;
continue;
}
sta.insert(a[i]);
flag=0;
res=0;
for(j=tag;j<n;j++)
{
it=sta.find(b[j]);
if(it==sta.end())
break;
if(flag)
{
res++;
continue;
}
stb.insert(b[j]);
if(sta.size()==stb.size())
{
res++;
tag=j;
flag=1;
}
}
ans+=res;
}
printf("%lld\n",ans);
}
}
51nod 1280 前缀后缀集合
最新推荐文章于 2022-02-26 16:52:46 发布