SP1846 PFDEP - Project File Dependencies
题目描述
项目管理工具(如 UNIX 工具 `make`)通常用于维护由多个组成部分构成的大型软件项目。在这些项目中,用户需要编写一个项目文件,文件中会明确指明哪些组件(即“任务”)依赖于其他组件。项目管理工具能够自动地按照正确的顺序更新这些组件。
问题
-------
请编写一个程序,该程序读取项目文件,并输出任务执行的顺序。
输入格式
为了简化问题,我们将每个任务用整数 $1, 2, \ldots, N$ 表示(其中 $N$ 是任务的总数)。输入的第一行包含两个整数:任务数 $N$ 和规则数 $M$,满足 $N \le 100$ 且 $M \le 100$。
接下来的 $M$ 行每行描述一条规则,表示依赖关系,语法如下:
```
$T_0$ $k$ $T_1$ $T_2$ $\ldots$ $T_k$
```
这表示编号为 $T_0$ 的任务依赖于 $k$ 个任务 $T_1, T_2, \ldots, T_k$(我们称 $T_0$ 为目标任务,$T_1, \ldots, T_k$ 为依赖任务)。
需要注意的是,任务编号之间用单个空格分隔,并且每条规则以换行符结束。规则的顺序可以随意,但每个任务只能作为目标任务出现一次。
可以假设这些规则中不存在循环依赖关系,即任何任务不会直接或间接依赖于自身。
输出格式
输出应为一行,列出任务 $1 \ldots N$ 的排列顺序,按照依赖关系排序(即任何任务不应在它所依赖的任务之前出现)。
为了避免歧义,对于不互相依赖的任务,应按照编号升序排列。
**本翻译由 AI 自动生成**