数据结构 C++查并集问题?

请问C++的查并集问题
一共有n人参与调查,如果两个人是直接或者间接的朋友把他们称为一个组。
输入:
1:输入参与总人数n,n的最大值为1000。
2:输入所有参与人的数字id,参与调查的人的名字用数字id代替。如:1,2,3,4,5,6.。。
输出:
1:朋友最多的人的数字id和他认识人的人数
2:最多人数的组有多少人
3:一共有多少小组

img

如果两个人是直接或者间接的朋友-----这个怎么判断啊?