A 国有 N 个城市(编号 1 \sim N),某些城市之间通过单向道路连接。
国王颁布了一条新律令,要传达到所有城市。由于时间紧,国王人手有限,他不会直接派人将律令传达到所有城市,而是选择部分城市传达。收到新律令的城市,会自发的通过单向道路将新律令传达到所有相邻的城市。
比如,1 号城市可以通过单向道路分别到 2 号、5 号、8 号城市,8 号城市可以到 10 号、12 号城市;只要 1 号城市收到新律令,上述所有的城市都能收到新律令。
现已知每个城市可以通过单向道路能够到到达的城市数据,请编程计算出,国王最少需要安排人将新律令送达几个城市,才能使得所有的城市都收到新律令。(请注意:国王所在的城市不在 1 \sim N 的范围内,国王所在的城市可以到达 1 \sim N 的所有城市,输入中的道路,不包含出国王所在城市到各个城市的道路,默认这样的道路是一定存在的)
第 1 行读入一个整数 N,表示城市的数量;
接下来读入 N 行数据,读入数据的第 i+1 行,表示编号为 i 的城市,通过单向道路可以到达城市的编号,读入 0 表示本行读入结束。
输出国王最少要派人传达新律令城市的数量。
5 2 4 3 0 4 5 0 0 0 1 0
1
1 号城市可以到达 2、4、3 号城市;
2 号城市可以到达 4、5 号城市;
3 号城市无法到达其他城市;
4 号城市无法到达其他城市;
5 号城市可以到达 1 号城市;
因此只需要将新律令传达到 1 号城市,该城市可以将新律令传达到 2、4、3 号城市,2 号城市收到新律令后,会传达到 5 号城市,这样所有的城市都可以收到新律令。
对于 100\% 的数据,2 \le N \le200。
东方博宜OJ