N 个同学按 1~N 编号排成一列玩传话游戏。第 i 个同学会把消息传给编号为 F_i 的同学(保证 F_i ≠ i);如果 F_i = 0,则表示他不再把消息传给别人。
如果一个同学发出的消息沿着传递链一直传下去,永远也不会到达一个「不再传话」的同学,那么他就陷入了死循环。请你求出没有陷入死循环的同学人数。
第一行一个整数 N。
接下来 N 行,每行一个整数,依次表示 F_1, F_2, …, F_N。
一行一个整数,表示没有陷入死循环的同学人数。
5 0 4 1 5 4
2
1 0
1
本题使用标准输入输出(stdin/stdout),不需要写 freopen。
样例解释 1
第 1 个同学不发送消息;第 3 个同学把消息传给第 1 个同学后停止。这两个同学没有陷入死循环。第 2 个同学把消息传给第 4 个,而第 4、5 个同学互相传话形成死循环,因此第 2 个同学最终也会陷入循环。答案为 2。
数据范围与约定
对于约 40% 的数据,1 ≤ N ≤ 50;
对于约 10% 的数据,1 ≤ N ≤ 300;
对于 100% 的数据,1 ≤ N ≤ 1000。
对于每个 i,0 ≤ F_i ≤ N 且 F_i ≠ i。