5202: 【哈希集合】华为2023秋招-获取连通的相邻节点列表

金币值:1 时间限制:2.000 s 内存限制:128 M
正确:28 提交:120 正确率:23.33% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 哈希集合 华为

题目描述

在网元内,存在了N个转发节点,每个转发节点有自己唯一的标识TB且每个节点有M个端口,节点间通过端口进行报文通讯。出于业务隔离的需求,服务器内的端口被划分为多个通讯平面(用VLAN隔离,每个VLAN都有一个VLAN_ID作为标识): 

1、如果两个端口的VLAN_ID相同,则说明这两个端口处于同个VLAN,且处于连通状态; 

2、如果两个端口的VLAN_ID不同,则说明这两个端口处于不同VLAN,彼此不连通; 

现给出节点A的端口数及其各端口所属的VLAN_ID,以及节点A相邻的其他节点和端口信息。 

要求获取与节点A处于连通状态的所有相邻节点的TB列表(按TB从小到大顺序输出)

输入格式

第1行:M VLAN_ID_1 ... VLAN_ID_m 

数据间用空格隔开,分别表示:节点A有M个端口,各个端口所属的VLAN_ID,即后面VLAN_ID_m表示第m个端口的VLAN ID。 

其中,网元内节点的端口数量M的取值范围为[1,4];端口划分VLAN_ID的取值范围为[1,4]; 


第2行:N 

表示与节点A相邻的其他节点有N个,N的取值范围为[0,4000) 


第3行开始,将有N行数据,分别描述与节点A相邻的节点的TB和端口信息 

输入格式为:TBx Mx VLAN_ID_xx ... VLAN_ID_xm 

数据间有空格隔开,分别表示: 节点x的TBx,有Mx个端口,各个端口所属的VLAN_ID,即后面VLAN_ID_xm表示第m个端口的VLAN_ID。 

其中,网元内节点TB的取值范围为(0,4294967295);

输出格式

第1行:N 

表示与节点A连通的相邻节点个数,如 N为0,则无需输出其他信息 


第2行:TB_1 ... TB_n 

数据间用空格隔开,分别表示:与节点A连通的相邻节点的TB,个数为N,按从小到大的顺序输出。

输入样例    复制

1 1
3
1024 2 1 2
1023 1 1
1025 3 2 2 3

输出样例    复制

2
1023 1024

提示

TB为1025的节点,其端口与节点A的端口均不在一个VLAN内,故与节点A不连通。 

TB为1024和1023的节点,均有端口与节点A的端口在VLAN_ID为1的VLAN内,故与节点A连通