Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define FOR(i,a,b) for(i=a;i<=b;i++)
- using namespace std;
- long long T,b[100005],a[100005],i,j,n,p,h,q;
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- map<int,int> map1;
- cin>>T;
- b[1]=2;
- FOR(i,2,100005) b[i]=b[i-1]+i*(i+1);
- FOR(q,1,T)
- {
- cin>>n;
- FOR(i,1,n) cin>>a[i];
- i=1;
- j=1;
- p=0;
- map1.clear();
- while (j<=n)
- {
- map1[a[i]]=true;
- j=i+1;
- if (i==n) {p+=1; break;}
- while (map1.find(a[j])==map1.end())
- {
- map1[a[j]]=j;
- j++;
- if (j>n) break;
- }
- //cout<<i<<" "<<j-1<<endl;
- h=j-i;
- //cout<<"a[j]="<<a[j]<<endl;
- p+=h*h*(h+1)/2-b[h-1];
- int k=j-map1[a[j]];
- if (j>n) break;
- p+=(k)*(k+1)/2;
- if (k!=0) p-=1;
- i=j;
- map1.clear();
- }
- printf("%d\n",p);
- }
- return 0;
- }/*/
- 1
- 6
- 1 2 3 2 1 1
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement