跳转至

滴嘟hia的能指循环

预估时间限制:0.5 秒。内存限制:128 MB。

实际时限以标准程序在目标评测环境的最慢用例中位时间乘以 \(2\) ,按 \(0.5\) 秒向上取整。参考环境见评测说明。

背景故事

“弟啊!你这样怎么吃啊”

有 \(n\) 个滴嘟hia,编号为 \(1,\ldots,n\) ,每个滴嘟hia都恰好指向一个滴嘟hia。沿着这些指向不断前进,就可能绕成一个环。

请统计所有环上的滴嘟hia共有多少个,每个只计一次。

形式化问题描述

给定 \(n\) 个顶点,编号为 \(1,\ldots,n\) .每个顶点 \(i\) 恰好有一条出边,指向 \(d_i\) .

一个环由互不相同的顶点 \(v_1,\ldots,v_k\) 组成,满足 \(d_{v_i}=v_{i+1}\)(\(1\le i<k\))以及 \(d_{v_k}=v_1\) .允许 \(k=1\) ,此时为自环。

求位于至少一个环上的顶点总数,每个顶点只计一次。仅能沿出边走到环、但自身不在环上的顶点不计入。\(n=0\) 时答案为零。

样例一的函数图,自环一和三元环二三四用双圆标记

图中的双圆顶点正是环上的顶点。

输入格式

第一行一个整数 \(n\) .接下来 \(n\) 行,第 \(i\) 行一个整数 \(d_i\) .

输出格式

输出一行一个整数,表示环上的顶点总数。

样例

样例 1

输入

8
1
3
4
2
3
5
2
4

输出

4

样例 2

输入

4
1
2
3
4

输出

4

样例 3

输入

0

输出

0

样例解释

样例 1 的环为自环 \(1\to1\) 和 \(2\to3\to4\to2\) ,共 \(4\) 个顶点。其余顶点只通向环。样例 2 的每个顶点都有自环。样例 3 是空图。

数据范围与保证

对 100% 的数据:\(0\le n\le10^5\) ;对每个存在的顶点,\(1\le d_i\le n\) .

分值比例 额外条件
100% 无额外条件