Advertisement
Malinovsky239

Untitled

Nov 8th, 2011
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.57 KB | None | 0 0
  1. #include <cstdio>
  2. #define N int(1e5)
  3.  
  4. int from[N], color[N];
  5. int res, co;
  6.  
  7. void dfs (int i)
  8. {
  9.   if (color[i] == 0)
  10.     color[i] = co;
  11.   else
  12.   {
  13.     if (color[i] == co)
  14.       res++;
  15.     return;
  16.   }
  17.   dfs(from[i]);
  18.   return;
  19. }
  20. int main()
  21. {
  22.   int n, i, j;
  23.   freopen("pigs.in", "r", stdin);
  24.   freopen("pigs.out", "w", stdout);
  25.   scanf("%d", &n);
  26.   for (i = 0; i < n; i++)
  27.   {
  28.     scanf("%d", &j);
  29.     from[i] = j - 1;
  30.   }
  31.   for (i = 0; i < n; i++)
  32.   {
  33.     if (color[i] == 0)
  34.     {
  35.       co++;
  36.       dfs(i);  
  37.     }
  38.   }
  39.   printf("%d\n", res);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement