#P585. 自由配对

自由配对

题目描述

nn 个人,编号分别为 11nn,我们需要将他们两两配对。

每个人有且只有一个愿意组队的对象,其中第 ii 个人的组队对象为 aia_i。若 ii 的组队对象是 jjjj 的组队对象也是 ii,那么这两个人可以组队。

请问这些人可以组成多少个队伍。

输入格式

  • 第一行:一个整数 nn
  • 第二行:nn 个 整数 a1,a2,,ana_1,a_2,\dots,a_n,其中 aia_i 表示ii 号愿意组队的编号。

输出格式

  • 单个整数,表示成功组队数量。
4
3 3 2 1
1

样例解释 1

1号同学想和3号同学组队, 2号同学想和3号同学组队, 3号同学想和2号同学组队, 4号同学想和1号同学组队, 因此2号与3号同学组队成功,共成功组成1个小组。

数据范围

  • 对于 30%30\% 的数据,2n102\leq n \leq 10
  • 对于 60%60\% 的数据,2n10002\leq n \leq 1000
  • 对于100%100\%的数据,2n1000002\leq n \leq 100000
  • 数据保证 aiia_i \neq i