#P1236. Network of Schools

    ID: 237 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>强连通分量(SCC)图的缩点(DAG构造)入度和出度分析IOI 1996

Network of Schools

描述

多个学校连接到计算机网络中。学校之间已达成协议:每个学校维护一个分发软件的学校列表(“接收学校”)。注意,如果学校 AA 的分发列表中包含学校 BB,则学校 AA 不一定出现在学校 BB 的接收列表中。

你需要编写一个程序,计算为了让软件能够根据协议传送到所有学校,最少需要多少个学校接收软件副本(子任务 AA)。作为进一步的任务,我们希望确保无论将新软件发送到哪个学校,都能确保该软件传递到网络中所有的学校。为此,我们可能需要扩展接收学校列表。计算为了确保无论将软件发送到哪个学校,它都会到达所有学校,最少需要做多少次扩展(子任务 BB)。一次扩展意味着将一个新的成员加入到一个学校的接收列表中。

输入

第一行包含一个整数 NN,表示网络中学校的数量(2<=N<=1002 <= N <= 100)。学校用从 11NN 的整数来标识。接下来的 NN 行,每一行描述了一个学校的接收列表。第 i+1i+1 行包含学校 ii 的接收学校的标识符,列表以 00 结尾。如果一个学校没有接收任何学校,列表中只有 00

输出

你的程序应输出两行结果。第一行输出一个正整数,表示子任务 AA 的答案。第二行输出子任务 BB 的答案。

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

来源

IOI 1996