2840 - 国王的律令

题目描述

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 号城市可以到达 243 号城市;

2 号城市可以到达 45 号城市;

3 号城市无法到达其他城市;

4 号城市无法到达其他城市;

5 号城市可以到达 1 号城市;

因此只需要将新律令传达到 1 号城市,该城市可以将新律令传达到 243 号城市,2 号城市收到新律令后,会传达到 5 号城市,这样所有的城市都可以收到新律令。

数据范围

对于 100\% 的数据,2 \le N \le200

来源

东方博宜OJ

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 112
通过人数 52
金币数量 2 枚
难度 基础


上一题 下一题