Advertisement
Ritam_C

DSA ka Saanp CP101

Feb 14th, 2021
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ld long double
  4. #define pb push_back
  5. #define p_b pop_back
  6. #define si stack<int>
  7. #define sll stack<ll>
  8. #define sc stack<char>
  9. #define vi vector<int>
  10. #define vll vector<ll>
  11. #define mii map<int, int>
  12. #define msi map<string, int>
  13. #define mci map<char, int>
  14. #define qc queue<char>
  15. #define qi queue<int>
  16. #define qll queue<ll>
  17. using namespace std;
  18.  
  19. int main(){
  20.     ios_base::sync_with_stdio(false);
  21.     cin.tie(NULL);
  22.     int t;
  23.     cin >> t;
  24.     while(t--){
  25.         long n;
  26.         cin >> n;
  27.  
  28.         map<ll, ll> m;
  29.         for(int i = 0; i < n; i++){
  30.             ll x;
  31.             cin >> x;
  32.             m[i+1] = x;
  33.         }
  34.  
  35.         ll sum = 0;
  36.         long i = 0;
  37.         set<set<ll>> p;
  38.         while(i < n){
  39.             set<ll> s;
  40.             int count = 1;
  41.             bool f = true;
  42.             int x = m[i+1];
  43.             s.insert(x);
  44.             while(m[x] != m[i+1]){
  45.                 s.insert(m[x]);
  46.                 x = m[x];
  47.                 count++;
  48.                 if(count > 3){
  49.                     break;
  50.                 }
  51.             }
  52.  
  53.             if(count == 3){
  54.                 p.insert(s);
  55.             }
  56.  
  57.  
  58.             i++;            
  59.         }
  60.  
  61.         cout << p.size() << "\n";
  62.     }
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement