Advertisement
Josif_tepe

Untitled

Nov 14th, 2022
854
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.01 KB | None | 0 0
  1. #include <fstream>
  2. #include <vector>
  3. #include <iostream>
  4. #include <queue>
  5. #include <cstring>
  6. using namespace std;
  7.  
  8.  
  9. int main()
  10. {
  11.    int n;
  12.    cin>>n;
  13.    vector<int>v[n];
  14.    int v2[n];
  15.     memset(v2, 0, sizeof v2);
  16.    int max_=-1e9;
  17.  
  18.    for(int i=0; i<n; i++){
  19.     int a;
  20.     cin>>a;
  21.     a--;
  22.     v[i].push_back(a);
  23.    }
  24.  
  25.    queue<int>q;
  26.    bool f[n];
  27.  
  28.    memset(f, false, sizeof f);
  29.    int cekori=0;
  30.  
  31.    for(int i=0; i<n; i++){
  32.     int s=i;
  33.     if(v2[s]==0){
  34.     memset(f, false, sizeof f);
  35.     v2[s]=1;
  36.         if(cekori>max_){
  37.             max_=cekori;
  38.         }
  39.     cekori=1;
  40.         f[s] = true;
  41.         q.push(s);
  42.         while(!q.empty()){
  43.  
  44.         int cs=q.front();
  45.         q.pop();
  46.  
  47.     for(int j=0; j<v[cs].size(); j++){
  48.             int sosed=v[cs][j];
  49.             if(f[sosed]==false){
  50.             f[sosed]=true;
  51.             v2[sosed]=1;
  52.             q.push(sosed);
  53.             cekori++;
  54.        }
  55.       }
  56.      }
  57.     }
  58.    }
  59.    cout<<max(max_, cekori);
  60.  
  61.  
  62.     return 0;
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement