#P005811. 线路重组

线路重组

题目描述

在繁忙的都市中,交通局决定对城市的公交站点进行一次线路重组实验,以优化乘客的出行体验。

城市有 NN 个公交站点(1N100,0001 \le N \le 100,000),编号为 11NN。每个站点初始时都有一辆公交车停靠。每个站点,都有规定的目的地,编号为 ii 的站点,规定的目的地站点编号为 PiP_i,公交车从 ii 站点开到 PiP_i 站点,耗时均为 11 小时。

更具体的说,所有当前整点时刻在编号为 ii 的站点的公交车,下一个整点时刻必须到编号为 PiP_i 的站点停靠。如果 Pi=iP_i = i 表示位于 ii 站点的公交车由于某些原因没有发车。

交通局发现,经过多个整点时刻之后,某些站点在整点时刻,无论如何都会有至少一辆公交车停靠。

为了评估线路的稳定性,请你编程计算这些始终有公交车停靠的站点数量。

输入格式

第一行包含一个整数 NN,表示公交站点的数量。

第二行包含 NN 个整数 P1,P2,,PNP_1, P_2, …, P_N,表示每个站点上的公交车移动到的目标站点编号。

输出格式

输出一个整数,表示在任意的整点时刻始终会有公交车停靠的站点数量。

样例 #1

输入

4
3 2 1 3

输出

3

数据范围

对于 30%30\% 的数据,满足 1N10001 \le N \le 1000

对于 100%100\% 的数据,满足 1N1051 \le N \le 10^51PiN1 \le P_i \le N