#P1236. Network of Schools
Network of Schools
描述
多个学校连接到计算机网络中。学校之间已达成协议:每个学校维护一个分发软件的学校列表(“接收学校”)。注意,如果学校 的分发列表中包含学校 ,则学校 不一定出现在学校 的接收列表中。
你需要编写一个程序,计算为了让软件能够根据协议传送到所有学校,最少需要多少个学校接收软件副本(子任务 )。作为进一步的任务,我们希望确保无论将新软件发送到哪个学校,都能确保该软件传递到网络中所有的学校。为此,我们可能需要扩展接收学校列表。计算为了确保无论将软件发送到哪个学校,它都会到达所有学校,最少需要做多少次扩展(子任务 )。一次扩展意味着将一个新的成员加入到一个学校的接收列表中。
输入
第一行包含一个整数 ,表示网络中学校的数量()。学校用从 到 的整数来标识。接下来的 行,每一行描述了一个学校的接收列表。第 行包含学校 的接收学校的标识符,列表以 结尾。如果一个学校没有接收任何学校,列表中只有 。
输出
你的程序应输出两行结果。第一行输出一个正整数,表示子任务 的答案。第二行输出子任务 的答案。
5
2 4 3 0
4 5 0
0
0
1 0
1
2
来源
IOI 1996