Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. int niza[50001];
  5. int n;
  6. int dist[50001];
  7. bool vis[50001];
  8. int rec(int at,int curr)
  9. {
  10. if(vis[at]==true)
  11. {
  12. return max(dist[at],curr+1);
  13. }
  14. vis[at]=true;
  15. return rec(niza[at-1],curr+1);
  16.  
  17. }
  18. int main()
  19. {
  20. cin>>n;
  21. for(int i=0; i<n; i++)
  22. {
  23. cin>>niza[i];
  24. }
  25. int MAX=0;
  26. int sum;
  27. memset(vis,false,sizeof(vis));
  28. memset(dist,0,sizeof(vis));
  29. for(int i=0; i<n; i++)
  30. {
  31. memset(vis,false,sizeof(vis));
  32. vis[i]=true;
  33. sum=0;
  34. MAX=max(MAX,rec(niza[i],sum));
  35.  
  36. }
  37. cout<<MAX<<endl;
  38. return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement