#P17194. [KOI 2026 #2] 分发零食

    ID: 17369 Type: RemoteJudge 1500ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>模拟Special Judge2026KOI(韩国)

[KOI 2026 #2] 分发零食

题目描述

有 NN 名学生和 NN 份零食。学生和零食均分别编号为 1,2,⋯ ,N1,2,\cdots,N。

每名学生都喜欢这 NN 份零食中的至少一份。更具体地,第 ii(1≤i≤N1 \le i \le N)名学生喜欢 CiC_i 份零食,这些零食的编号分别为 Ai,1,Ai,2,⋯ ,Ai,CiA_{i,1},A_{i,2},\cdots,A_{i,C_i}。

起初,房间里恰好各放有一份这 NN 种零食。现要按照以下过程把零食分发给学生:

  • 选择一个合适的顺序,每次让一名学生进入房间。
  • 进入房间的学生会拿走房间中剩余的、自己喜欢的所有零食。如果房间中已经没有任何自己喜欢的零食,则什么也不拿。

请合理确定 NN 名学生进入房间的顺序,并判断是否能使每名学生都恰好拿走一份零食。若可以,请输出任意一种满足条件的顺序。

输入格式

第一行给出表示学生数和零食数的整数 NN。

接下来的 NN 行给出 NN 名学生所喜欢零食的信息。其中第 ii(1≤i≤N1 \le i \le N)行依次给出以空格分隔的整数 CiC_i 以及 CiC_i 个整数 Ai,1,Ai,2,⋯ ,Ai,CiA_{i,1},A_{i,2},\cdots,A_{i,C_i}。

输出格式

如果不存在一种顺序能让所有学生都恰好拿走一份零食,则在第一行输出 -1。

如果学生按照 P1,P2,⋯ ,PNP_1,P_2,\cdots,P_N 的编号顺序进入房间时,每名学生都能恰好拿走一份零食,则在第一行输出 NN 个以空格分隔的整数 P1,P2,⋯ ,PNP_1,P_2,\cdots,P_N。

如果存在多种可行输出,输出其中任意一种均视为正确。

3
2 1 2
2 2 3
1 2
3 1 2
2
2 1 2
2 1 2
-1
4
1 3
1 2
3 4 2 3
2 1 2
1 2 3 4

提示

样例 1 解释

每名学生喜欢的零食如下:

  • 第 11 名学生喜欢第 11、第 22 份零食。
  • 第 22 名学生喜欢第 22、第 33 份零食。
  • 第 33 名学生喜欢第 22 份零食。

若第 33、第 11、第 22 名学生依次进入房间,则每名学生都恰好拿走一份零食。

  • 起初,房间中第 11、第 22、第 33 份零食各有一份。
  • 第 33 名学生进入房间后拿走第 22 份零食。此后房间中剩下第 11、第 33 份零食。
  • 第 11 名学生进入房间后拿走第 11 份零食。此后房间中只剩下第 33 份零食。
  • 第 22 名学生进入房间后拿走第 33 份零食。

同理,即使第 33、第 22、第 11 名学生依次进入房间,所有学生也都恰好拿走一份零食。

样例 2 解释

两名学生都喜欢全部两种零食,因此无论学生以何种顺序进入房间,最先进入的学生都会拿走所有零食。

限制条件

  • 给出的所有数均为整数。
  • 1≤N≤200 0001 \le N \le 200\,000
  • 对于每个整数 ii(1≤i≤N1 \le i \le N),1≤Ci≤N1 \le C_i \le N
  • C1+C2+⋯+CN≤500 000C_1+C_2+\cdots+C_N \le 500\,000
  • 对于每个整数 ii(1≤i≤N1 \le i \le N)和整数 jj(1≤j≤Ci1 \le j \le C_i),1≤Ai,j≤N1 \le A_{i,j} \le N
  • 对于每个整数 ii(1≤i≤N1 \le i \le N),CiC_i 个整数 Ai,1,Ai,2,⋯ ,Ai,CiA_{i,1},A_{i,2},\cdots,A_{i,C_i} 两两不同。

子任务

  1. (66 分)对于每个整数 ii(1≤i≤N1 \le i \le N),Ci=1C_i=1。
  2. (1111 分)如果存在一种顺序能让所有学生都恰好拿走一份零食,那么学生按 1,2,⋯ ,N1,2,\cdots,N 的编号顺序进入房间也满足条件。
  3. (88 分)N≤5N \le 5。
  4. (1212 分)N≤18N \le 18。
  5. (1818 分)N≤300N \le 300。
  6. (2020 分)N≤5 000N \le 5\,000。
  7. (2525 分)没有额外限制。