#C. 「一本通 3.5 练习 1」网络协议

    Type: Default 1000ms 10MiB

「一本通 3.5 练习 1」网络协议

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

原题来自:IOI 1996

一些学校连接在一个计算机网络上。学校之间存在软件支援协议。每个学校都有它应支援的学校名单(学校 aa 支援学校 bb,并不表示学校 bb 一定支援学校 aa)。当某校获得一个新软件时,无论是直接得到还是网络得到,该校都应立即将这个软件通过网络传送给它应支援的学校。因此,一个新软件若想让所有连接在网络上的学校都能使用,只需将其提供给一些学校即可。

任务

  1. 请编一个程序,根据学校间支援协议(各个学校的支援名单),计算最少需要将一个新软件直接提供给多少个学校,才能使软件通过网络被传送到所有学校;
  2. 如果允许在原有支援协议上添加新的支援关系。则总可以形成一个新的协议,使得此时只需将一个新软件提供给任何一个学校,其他所有学校就都可以通过网络获得该软件。编程计算最少需要添加几条新的支援关系。

输入格式

第一行是一个正整数 nn,表示与网络连接的学校总数。 随后 nn 行分别表示每个学校要支援的学校,即:i+1i+1 行表示第 ii 号学校要支援的所有学校代号,最后 00 结束。
如果一个学校不支援任何其他学校,相应行则会有一个 00。一行中若有多个数字,数字之间以一个空格分隔。

输出格式

包含两行,第一行是一个正整数,表示任务 a 的解,第二行也是一个正整数,表示任务 b 的解。

样例

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

数据范围与提示

2n1002 \le n \le 100