#P1590. 2023.09.17-YFD-第一题-塔子哥的讲课顺序

2023.09.17-YFD-第一题-塔子哥的讲课顺序

题目描述

塔子哥讲课的内容是存在递进关系的,现在塔子哥用文件记载讲课内容,文件之间的内容存在相互依赖的关系,为了保证课堂内容循序渐进,塔子哥需要根据它们的依赖关系从被依赖最少的内容讲起,请帮助塔子哥输出讲课文件的顺序。

输入描述

第一行为数字t,表示有t个测试用例

随后的t个用例,每个用例的结构如下:

  • 第一行为数字n,表示共有n个讲课文件
  • 随后的n行,每一行由数字d开头,随后的d个字符串,第一个字符串为讲课文件的名称m,其后的d-1个字符串为文件m有依赖内容的其他讲课文件名称列表

$(1 < t < 10, 1 < n < 1000, 1 < m.length < 10, d < 100)$

输出描述

输出t行数据,第i行数据表示第i个测试用例所需要的讲课顺序,如果有两个讲课文件被依赖的次数相同,则代表内容的递进程度相当,按文件名的字典从小到大排序即可

注意:

  1. 只需考虑文件内容之间的直接依赖
  2. 保证一个文件内容不会多次依赖同一个文件内容

# 示例

输入

1
10
2 1.js 3.js
3 2.js 8.js 3.js
8 3.js 2.js 10.js 8.js 9.js 5.js 1.js 4.js
6 4.js 3.js 8.js 10.js 5.js 1.js
4 5.js 6.js 8.js 1.js
7 6.js 4.js 5.js 3.js 9.js 7.js 10.js
6 7.js 2.js 4.js 5.js 1.js 10.js
9 8.js 6.js 7.js 2.js 9.js 1.js 5.js 4.js 10.js
3 9.js 4.js 10.js
5 10.js 7.js 4.js 6.js 2.js

输出

6.js 7.js 9.js 2.js 3.js 8.js 1.js 5.js 10.js 4.js

输入

1
10
5 1.js 9.js 3.js 8.js 5.js
3 2.js 10.js 8.js
2 3.js 9.js
9 4.js 10.js 8.js 3.js 5.js 1.js 7.js 2.js 9.js
9 5.js 8.js 3.js 9.js 1.js 4.js 2.js 6.js 7.js
9 6.js 8.js 9.js 4.js 5.js 2.js 1.js 7.js 10.js
9 7.js 6.js 8.js 4.js 5.js 2.js 10.js 9.js 1.js
2 8.js 3.js
1 9.js
2 10.js 8.js

输出

6.js 4.js 7.js 1.js 10.js 2.js 3.js 5.js 9.js 8.js