fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int f(vector<int>&arr,int i){
  6. return arr[arr[arr[i]]];
  7. }
  8. int main() {
  9. int t ; cin>>t;
  10. while(t--){
  11. int n ; cin>>n;
  12. vector<int>arr(n+1,0);
  13. for(int i = 1 ; i<=n;i++){
  14. cin>>arr[i];
  15. }
  16. unordered_map<int,int>hash;
  17. int count = 0 ;
  18. for(int i = 1 ; i<=n;i++){
  19. int val = f(arr,i);
  20. if(hash.find(val)!=hash.end()){
  21. count+=hash[val];
  22. }
  23. hash[val]++;
  24. }
  25. cout<<count;
  26. }
  27. return 0;
  28. }
Success #stdin #stdout 0.01s 5284KB
stdin
1 
4 
4 2 1 2
stdout
6