var n, i, j, cnt : longint; d : array[0..99] of longint; v : array[0..99] of boolean; begin read(n); for i := 0 to n-1 do begin read(d[i]); v[i] := false; end; cnt := 0; for i := 0 to n-1 do begin if v[i] = false then begin j := i; while v[j] = false do begin v[j] := true; j := d[j]; end; inc(cnt); end; end; writeln(cnt); end.
输入:10 7 1 4 3 2 5 9 8 0 6
输出:1