CF1798B Three Sevens

题目描述

彩票“三个七”持续举办了 $m$ 天。在第 $i$ 天,有 $n_i$ 个编号为 $a_{i,1}, \ldots, a_{i,n_i}$ 的人参与了抽奖。 已知在每一天(共 $m$ 天)中,只有一名中奖者会从当天的参与者中被选出。第 $i$ 天的中奖者在接下来的第 $i+1$ 天到第 $m$ 天中不允许再参与抽奖。 不幸的是,关于中奖者的信息已经丢失。你需要找出从第 $1$ 天到第 $m$ 天可能的中奖者名单,或者判断是否不存在这样的方案。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 50000$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $m$($1 \le m \le 50000$),表示彩票举办的天数。 接下来,对于每个 $i$ 从 $1$ 到 $m$,有如下两行数据组成一个数据块: 第一行包含一个整数 $n_i$($1 \le n_i \le 50000$),表示第 $i$ 天参与抽奖的人数。 第二行包含 $a_{i,1}, \ldots, a_{i,n_i}$($1 \le a_{i,j} \le 50000$),表示第 $i$ 天参与抽奖的人的编号。保证所有 $a_{i,1}, \ldots, a_{i,n_i}$ 互不相同。 保证所有测试用例中所有 $n_i$ 的总和不超过 $50000$。

输出格式

对于每个测试用例,如果不存在方案,输出一个整数 $-1$。 否则,输出 $m$ 个整数 $p_1, p_2, \ldots, p_m$($1 \le p_i \le 50000$),表示从第 $1$ 天到第 $m$ 天的中奖者编号。如果有多种方案,输出任意一种均可。

说明/提示

在第一个测试用例中,其中一个答案是 $[8, 2, 1]$,因为编号为 $8$ 的参与者只在第 $1$ 天参与,未在第 $2$ 天和第 $3$ 天参与;编号为 $2$ 的参与者只在第 $2$ 天参与,未在第 $3$ 天参与;编号为 $1$ 的参与者只在第 $3$ 天参与。注意这不是唯一的答案,例如 $[8, 9, 4]$ 也是正确答案。 在第二个测试用例中,两个参与者在两天都参与了抽奖,因此第 $1$ 天的任何中奖者在第 $2$ 天也会参与,这不被允许。因此不存在正确答案。 在第三个测试用例中,第 $2$、$3$、$4$ 天只有一个参与者,第 $1$ 天只有一个参与者没有在第 $2, 3, 4$ 天参与——编号为 $2$ 的参与者,因此 $[2, 1, 4, 3]$ 是该测试用例唯一正确答案。 由 ChatGPT 4.1 翻译