问题 5673 --社交网络

5673: 社交网络★★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 97  解决: 35
[提交][状态][命题人:]

题目描述

在一个社交网络中,n个用户组成了m个社交交流群(一个用户可以同时在多个群里,也可以不在任何一个群里,一个群里可以有0个,1个或者多个用户)。一个交流群里的所有用户都是朋友关系,可以相互交换信息。

最初,用户x收到了一条信息,然后x将该信息告诉了他的所有朋友。接收到该信息的用户又将信息告诉他们的朋友们,以此类推。当任意一对朋友中不存在其中一人知道而另外一人不知道该信息时,整个信息传递过程结束。

对于每个用户x,我们必须确定如果最初只有用户x知道信息,最终会有多少用户会知道这个消息呢?

输入

第一行两个整数nm(1n,m5*105),分别为用户数量和社交交流群的数量;

接下来共m行,第i行的第一个整数位ki(0in),为第i个交流群中的用户数量,后面共ki个整数,为第i个用户交流群里的ki个用户的编号。

测试数据确保:k1+k2+k3+……+km<=5*105

输出

一行n个整数(空格隔开)。第i个整数为:当第i个用户首先知道该信息时,最终知道该信息的用户数。
样例输入
Copy
7 5
3 2 5 4
0
2 1 2
1 1
2 6 7

样例输出
Copy
4 4 1 4 4 2 2 

提示

来源

[提交][状态]