在一个应用启动时,通常需要执行多个初始化任务。这些任务之间可能存在依赖关系,例如,如果任务 A 依赖于任务 B,则必须在任务 B 执行完成后,才能开始执行任务 A。
任务依赖关系规则:
A->B
,表示任务 A 依赖于任务 B。一个应用启动时,会有多个初始化任务需要执行,并且任务之间有依赖关系,例如 A 任务依赖 B 任务,那么必须在 B 任务执行完成之后,才能开始执行 A 任务。
现在给出多条任务依赖关系的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则立刻开始执行,如果同时有多个任务要执行,则根据任务名称字母顺序排序。
例如: B 任务依赖 A 任务, C 任务依赖 A 任务, D 任务依赖 B 任务和 C 任务,同时, D 任务还依赖 E 任务。
那么执行任务的顺序由先到后是:
A 任务,E 任务,B 任务,C 任务,D 任务
这里 A 和 E 任务都是没有依赖的,立即执行。
输入参数每个元素都表示任意两个任务之间的依赖关系,输入参数中符号"->"表示依赖方向,例如:
A->B:表示 A 依赖 B
多个依赖之间用单个空格分隔
输出排序后的启动任务列表,多个任务之间用单个空格分隔
输入
A->B C->B
输出
B A C