153. 24年9月-华为国内-1.绩效互评人员分配

难度 6
  • 标签:
  • 大厂笔试真题华为
题目描述
题解
题库

24年9月-华为国内-1.绩效互评人员分配

题目内容

公司组织绩效互评,为了避免有同学或者同团队的人互相打高分,需要将员工分成两组分别打分。给定一个整数 n 和一个数组 GoodRelationShips,其中,n 表示人数,数组 GoodRelationShips 是一个邻接表,GoodRelationShips[i] 的元素 [a, b, c] 代表员工 i 和员工 a、b、c 是同学或者同团队。请将这几个人分成两组,使其每组不再有同学或者同团队的人。
GoodRelationShips 的长度范围为 [1, 100]。
GoodRelationShips[i] 中的元素的范围为 [1, GoodRelationShips.length - 1]。
GoodRelationShips[i] 不会包含自己或者有重复的值。
图是无向的:如果 i 在 GoodRelationShips[j] 里边,那么 j 也会在 GoodRelationShips[i] 里边。
保证给出的图是联通图。

输入描述

数组形式的员工关系邻接表,第一行数字代表有 N 个顶点,顶点编号从 0 开始,后续接 N 行。第 i 行代表第 i 个顶点和他有关系的同学的顶点编号。

输出描述

分组方案按照节点编号从小到大排序,如两个方案第一个节点相同,则按照第二个节点排序,以此类推;方案内部也按照编号从小到大排序。输出排序最靠前的一种方案,如无法分成符合条件的两组,则输出 -1。

如输出如下两种方案时,选择第一种方案,因为方案一的分组2第一个节点编号更小:

  • 分组1:1 分组2: 2 3 4 5
  • 分组1:1 2 分组2: 3 4 5

如输出如下两种方案时,选择第二种方案,因为方案二的分组2第一个节点编号更小:

  • 分组1:1 2 分组2:3 4 5
  • 分组1:1 3 分组2: 2 4 5

样例1

输入

4
1 3
0 2
1 3
0 2

输出

0 2
1 3

说明
无向图如下:

image-20250805110209853

样例2

输入

4
1 2 3
0 2
0 1 3
0 2

输出

-1

说明
无向图如下:

image-20250805110241816