fork download
  1. #include<iostream>
  2. #include<unordered_set>
  3. using namespace std;
  4. int CountDistinctArrays(int arr[], int n) {
  5. unordered_set<int>s;
  6. int j = 0, ans = 0;
  7. for(int i=0;i<n;i++){
  8. while(j<n && s.find(arr[j])==s.end()){
  9. s.insert(arr[j]);
  10. j++;
  11. }
  12. ans+=((j-i)*(j-i+1))/2;
  13. s.erase(arr[i]);
  14. }
  15. return ans;
  16. }
  17. int main() {
  18. int n;
  19. cin>>n;
  20. int arr[n];
  21. for(int i=0;i<n;i++){
  22. cin>>arr[i];
  23. }
  24. int ans = CountDistinctArrays(arr,n);
  25. cout<<ans;
  26. return 0;
  27. }
Success #stdin #stdout 0s 4436KB
stdin
3
1 2 3
stdout
10