为了更好的阅读体检,可以查看我的算法学习网
在线评测链接:P1487
题目内容
塔子哥搭建了一个网络,网络中存在有 N N N个网络节点,并且每个节点被塔子哥赋予了一个唯一的标识Name。每个节点有 t t t个端口,节点间通过端口进行报文通讯。同时,塔子哥为了满足服务需求,将节点的每个端口进行了连通块的划分(所处连通块用id标识):
- 如果两个端口的id相同,说明这两个端口处于同一个连通块中,处于连通状态
- 否则,彼此不连通
塔子哥想知道,有哪些节点和节点 A A A是连通的?(有一个端口和 A A A在同一个连通块中就能与A连通)
输入描述
第一行一个整数 m m m及 m m m个整数,代表节点 A A A的端口数量以及每个端口的id。
第二行一个整数 n n n,代表网络中除节点 A A A外,还有其他 n n n个节点。
接下来 n n n行,每行形式为 N a m e t i d 1 i d 2 . . . i d t Name\space t\space id_1\space id_2...id_t Name t id1 id2...idt
0 ≤ n ≤ 4000 0\le n\le4000 0≤n≤4000
1 ≤ N a m e ≤ 4294967294 1\le Name\le4294967294 1≤Name≤4294967294
输出描述
第一行一个整数 N N N,代表与 A A A连通的节点一共有多少个。
第二行 N N N个整数,代表每个节点的 N a m e Name Name,从小到大输出。
样例
输入
2 1 2
4
1000 3 4 3 5
1001 2 1 2
114514 3 1 2 3
1919810 1 1
输出
3
1001 114514 1919810