传递消息
时间限制:1秒 内存限制:256M
【题目描述】
小H 的猴子通常是按 1 到 \(N\) 进行编号的,猴子们相互之间有一种特殊的消息传输方式。在消息传递的过程中,每只猴子的消息最多传递到另一只猴子,对于猴子 \(i\),\(F_i\) 表示他要传递消息的那只猴子的编号,这里 \(i\) 和 \(F_i\) 肯定是不同的,如果 \(F_i\) 是 0,则表示猴子 \(i\) 没有要传递消息给其他的猴子。
不幸的是,猴子们知道了这种传递消息的方式可能会导致一个死循环。如果一个猴子传递消息最终会导致一个死循环,那么我们就说这只猴子在死循环里面。
请帮助猴子们计算有多少头猴子没有在死循环里面。
【输入格式】
第一行一个正整数 \(N\),表示猴子的数量。
接下来第 2 行到 \(N+1\) 行,每行一个非负整数,对于第 \(i+1\) 行上的数,表示猴子 \(i\) 要把消息传递过去的猴子的编号,如果是 0 则表示这头猴子不需要传递消息。
【输出格式】
输出不在死循环里面的猴子的数量。
【输入输出样例】
Input
5
0
4
1
5
4
Output
2
【输出格式说明】
样例中,猴子 1 不在死循环中因为他不传递消息,猴子 3 也不在死循环中是因为他传递消息给猴子 1。其他的猴子全部都在死循环中,所以样例的答案是 2。
【数据限制】
对于 \(100\%\) 的数据,\(1N≤1000\)。
【来源】
Mr.he