1549 - 【USACO】relay
时间限制 : 1 秒
内存限制 : 128 MB
Farmer John 有 N ( 1 \le N \le 1000 )头奶牛,标号为 1 \dots N 。奶牛们使用一种基于锡罐和细绳的老式交流机制,并且弄清楚如何在 Farmer John 注意不到的情况下进行彼此之间的交流。
每头奶牛将消息传递给至多一头其他奶牛:对于奶牛 i , F_i 表示奶牛 i 会将她接收到的消息传递给奶牛 F_i ( F_i 的值一定与 i 不同)。如果 F_i = 0 ,那么意味着奶牛 i 不会传递消息给其他奶牛。
不幸的是,奶牛们发现从某个特定奶牛传递出的消息有可能最终陷入循环,永远的在这一循环中进行消息传递。如果一头奶牛传递出的消息最终会陷入循环,那么这头奶牛被称作为循环奶牛。奶牛们想要避免消息从循环奶牛那传递出来。请帮助她们求出有多少头奶牛不是循环奶牛。
输入
第 1 行:奶牛数量 N 。
第 2 \dots N + 1 行:第 i + 1 行包含 F_i 。
输出
第 1 行:一个整数,表示所有奶牛中不是循环奶牛的数量。
样例
输入
5 0 4 1 5 4
输出
2
提示
有 5 头奶牛。奶牛 1 不传递消息,奶牛 2 将消息传递给奶牛 4 ,其他奶牛以此类推。
奶牛 1 不是循环奶牛,因为她不会传递消息。奶牛 3 不是循环奶牛,因为她会将信息传递给奶牛 1 ,而接着奶牛 1 不会传递消息。其他所有奶牛都是循环奶牛。
来源
USACO