问题2085--校园网络(POJ1236)

2085: 校园网络(POJ1236)

时间限制: 1 Sec  内存限制: 128 MB
提交: 15  解决: 9
[提交] [状态] [讨论版] [命题人:]

题目描述

许多学校连接到计算机网络,这些学校之间已达成协议:每所学校都有一份学校名单,其中包括分发软件的学校(接收学校)。注意,即使学校B出现在学校A的分发列表中,学校A也不一定出现在学校B的列表中。编写程序,计算必须收到新软件副本的最少学校数量,以便软件根据协议到达网络中的所有学校(子任务1)。作为进一步的任务,希过将新软件的副本发送到任意学校,使该软件覆盖网络中的所有学校。为了实现这一目标,可能必须通过新成员扩展接收者列表。请计算必须进行的最小数量的扩展,以便发送新软件到任意学校,它将到达所有其他学校(子任务2)。一个扩展表示将一个新成员引入一所学校的接收者名单。

输入

第1行包含1个整数N ,表示网络中的学校数(2≤N≤100)。学校由前N 个正整数标识。接下来的N 行,每一行都描述了接收者列表,第i +1行包含学校i 的接收者的标识符。每个列表都以0结尾。空列表在行中仅包含0。

输出

输出包括两行。第1行应包含子任务1的解,第2行应包含子任务2的解。

样例输入 Copy

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

样例输出 Copy

1
2

来源/分类