3037 - 国王的律令(2)

题目描述

A 国有 N 个城市(编号 1 \sim N),某些城市之间通过单向道路连接。

国王颁布了一条新律令,要传达到所有城市。由于时间紧,国王人手有限,他不会直接派人将律令传达到所有城市,而是选择部分城市传达。收到新律令的城市,会自发的通过单向道路将新律令传达到所有相邻的城市。

比如,1 号城市可以通过单向道路分别到 2 号、5 号、8 号城市,8 号城市可以到 10 号、12 号城市;只要 1 号城市收到新律令,上述所有的城市都能收到新律令。

现已知每个城市可以通过单向道路能够到到达的城市数据,请编程计算出:

  1. 国王最少需要安排人将新律令送达几个城市,才能使得所有的城市都收到新律令。

  2. 如果国王想要通过修建部分单向道路,从而使得国王只需要将律令送达任何一个城市,其余所有城市都能收到律令,那么国王需要最少修建多少条单向道路。

请注意:国王所在的城市不在 1 \sim N 的范围内,国王所在的城市可以到达 1 \sim N 的所有城市,输入中的道路,不包含出国王所在城市到各个城市的道路,默认这样的道路是一定存在的。

输入

1 行读入一个整数 N,表示城市的数量;

接下来读入 N 行数据,读入数据的第 i+1 行,表示编号为 i 的城市,通过单向道路可以到达城市的编号,读入 0 表示本行读入结束。

本题数据保证任意两个城市之间,最多只有一条单向道路。

输出

1 行输出国王最少要派人传达新律令城市的数量。

2 行输出国王想要实现题目所述的目标,至少需要修建单向道路的数量。

样例

输入

5
2 4 3 0
4 5 0
0
0
1 0

输出

1
2

输入

12
2 0
3 0
5 4 0
2 6 8 0
0
0
4 0
0
10 11 0
0
12 0
0

输出

3
5
说明

样例 1 解释

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

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

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

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

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

对于第 1 个问题:

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

对于第 2 个问题:

修建一条 4 号到 1,2,5 中任意点的有向道路,再修建一条 3 号到 1,2,5 中任意点的有向道路,就可以实现国王的目标。

数据范围

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

来源

东方博宜OJ

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


上一题 下一题