#P3272. 启动多任务排序(200分)

启动多任务排序(200分)

题目内容

一个应用启动时,会有多个初始化任务需要执行,并且任务之间有依赖关系,例如 AA 任务依赖 BB 任务,那么必须在 BB 任务执行完成之后,才能开始执行 AA 任务。

现在给出多条任务依赖关系的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则立刻开始执行,如果同时有多个任务要执行,则根据任务名称字母顺序排序。

例如: BB 任务依赖 AA 任务, CC 任务依赖 AA 任务, DD 任务依赖 BB 任务和 CC 任务,同时, DD 任务还依赖 EE 任务。

那么执行任务的顺序由先到后是:

AA 任务,EE 任务,BB 任务,CC 任务,DD 任务

这里 AAEE 任务都是没有依赖的,立即执行。

输入描述

输入参数每个元素都表示任意两个任务之间的依赖关系,输入参数中符号"->"表示依赖方向,例如:

AA->BB:表示 AA 依赖 BB

多个依赖之间用单个空格分隔

输出描述

输出排序后的启动任务列表,多个任务之间用单个空格分隔

样例1

输入

A->B C->B

输出

B A C