fork download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. //scan data
  5. int n;
  6. scanf("%d",&n);
  7. int Friend[50000];
  8. int i;
  9. for(i=0;i<n;i++)
  10. scanf("%d",&Friend[i]);
  11.  
  12. //process data
  13. int visited[50000]={0};
  14. //int group[50000]={0};
  15. int m=0;
  16. int *iptr=Friend;
  17. for(i=0;i<n;i++){
  18. if(visited[i]==0){
  19. iptr=&Friend[i];
  20. visited[i]=1;
  21. m++;
  22. //group[i]=m;
  23. while(*iptr!=i){
  24. visited[*iptr]=1;
  25. //group[*iptr]=m;
  26. iptr=&Friend[*iptr];
  27. }
  28. }
  29. }
  30.  
  31. //print data
  32. printf("%d",m);
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0.01s 5324KB
stdin
10 4 7 2 9 6 0 8 1 5 3
stdout
4