fork download
  1. #include<stdio.h>
  2. int is_gone[121212], ck[121212], a[121212];
  3. int main() {
  4. int n, i, t = 1, ans = 0;
  5. scanf("%d", &n);
  6. for (i = 1; i <= n; i++)scanf("%d", &a[i]);
  7. for (i = 1; i <= n; i++) {
  8. if (is_gone[i])continue;
  9. int now = i;
  10. while (1) {
  11. ck[now] = i, is_gone[now] = t++;
  12. if (ck[a[now]] != 0) {
  13. if (ck[a[now]] == i) ans += t - is_gone[a[now]];
  14. break;
  15. }
  16. now = a[now];
  17. }
  18. }
  19. printf("%d", ans);
  20. return 0;
  21. }
Success #stdin #stdout 0s 4376KB
stdin
4
3 2 1 3
stdout
3