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