#799. 任务调度系统
任务调度系统
题目背景
机房的超级计算机需要执行 个计算任务(编号 )。任务之间有依赖关系,共 条,形如 U V,表示"任务 必须在任务 开始前完成"。
题目描述
由于程序员可能有手误,输入的依赖关系中可能存在死循环(环)。
同时,如果存在多种可行的执行顺序,系统默认要求编号越小的任务尽量越早执行(即输出字典序最小的序列)。
请你设计调度程序:如果能完成所有任务,输出字典序最小的顺序;如果存在死循环,输出 -1。
输入格式
第一行两个整数 ()。 接下来 行,每行两个整数 ,表示 要在 前面。
输出格式
如果能完成,输出一行 个整数;否则输出 -1。
样例输入 1(多解求字典序)
4 2
1 3
2 3
样例输出 1
1 2 3 4
解释:1和2都可以先做,为了字典序最小,先做1
样例输入 2(有环死锁)
3 3
1 2
2 3
3 1
样例输出 2
-1
统计
相关
在以下作业中: