P17194 [KOI 2026 #2] 分发零食
题目描述
有 $N$ 名学生和 $N$ 份零食。学生和零食均分别编号为 $1,2,\cdots,N$。
每名学生都喜欢这 $N$ 份零食中的至少一份。更具体地,第 $i$($1 \le i \le N$)名学生喜欢 $C_i$ 份零食,这些零食的编号分别为 $A_{i,1},A_{i,2},\cdots,A_{i,C_i}$。
起初,房间里恰好各放有一份这 $N$ 种零食。现要按照以下过程把零食分发给学生:
- 选择一个合适的顺序,每次让一名学生进入房间。
- 进入房间的学生会拿走房间中剩余的、自己喜欢的所有零食。如果房间中已经没有任何自己喜欢的零食,则什么也不拿。
请合理确定 $N$ 名学生进入房间的顺序,并判断是否能使每名学生都恰好拿走一份零食。若可以,请输出任意一种满足条件的顺序。
输入格式
第一行给出表示学生数和零食数的整数 $N$。
接下来的 $N$ 行给出 $N$ 名学生所喜欢零食的信息。其中第 $i$($1 \le i \le N$)行依次给出以空格分隔的整数 $C_i$ 以及 $C_i$ 个整数 $A_{i,1},A_{i,2},\cdots,A_{i,C_i}$。
输出格式
如果不存在一种顺序能让所有学生都恰好拿走一份零食,则在第一行输出 `-1`。
如果学生按照 $P_1,P_2,\cdots,P_N$ 的编号顺序进入房间时,每名学生都能恰好拿走一份零食,则在第一行输出 $N$ 个以空格分隔的整数 $P_1,P_2,\cdots,P_N$。
如果存在多种可行输出,输出其中任意一种均视为正确。
说明/提示
### 样例 1 解释
每名学生喜欢的零食如下:
- 第 $1$ 名学生喜欢第 $1$、第 $2$ 份零食。
- 第 $2$ 名学生喜欢第 $2$、第 $3$ 份零食。
- 第 $3$ 名学生喜欢第 $2$ 份零食。
若第 $3$、第 $1$、第 $2$ 名学生依次进入房间,则每名学生都恰好拿走一份零食。
- 起初,房间中第 $1$、第 $2$、第 $3$ 份零食各有一份。
- 第 $3$ 名学生进入房间后拿走第 $2$ 份零食。此后房间中剩下第 $1$、第 $3$ 份零食。
- 第 $1$ 名学生进入房间后拿走第 $1$ 份零食。此后房间中只剩下第 $3$ 份零食。
- 第 $2$ 名学生进入房间后拿走第 $3$ 份零食。
同理,即使第 $3$、第 $2$、第 $1$ 名学生依次进入房间,所有学生也都恰好拿走一份零食。
### 样例 2 解释
两名学生都喜欢全部两种零食,因此无论学生以何种顺序进入房间,最先进入的学生都会拿走所有零食。
### 限制条件
- 给出的所有数均为整数。
- $1 \le N \le 200\,000$
- 对于每个整数 $i$($1 \le i \le N$),$1 \le C_i \le N$
- $C_1+C_2+\cdots+C_N \le 500\,000$
- 对于每个整数 $i$($1 \le i \le N$)和整数 $j$($1 \le j \le C_i$),$1 \le A_{i,j} \le N$
- 对于每个整数 $i$($1 \le i \le N$),$C_i$ 个整数 $A_{i,1},A_{i,2},\cdots,A_{i,C_i}$ 两两不同。
### 子任务
1. ($6$ 分)对于每个整数 $i$($1 \le i \le N$),$C_i=1$。
2. ($11$ 分)如果存在一种顺序能让所有学生都恰好拿走一份零食,那么学生按 $1,2,\cdots,N$ 的编号顺序进入房间也满足条件。
3. ($8$ 分)$N \le 5$。
4. ($12$ 分)$N \le 18$。
5. ($18$ 分)$N \le 300$。
6. ($20$ 分)$N \le 5\,000$。
7. ($25$ 分)没有额外限制。