3753 - 消息接力relay
描述

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。

来源
CSP-J模拟赛7
标签
题目参数
时间限制 1 秒
内存限制 256 MB
提交次数 18
通过次数 14