训练排程(schedule)
题目描述
的训练系统中有 个学习任务。
第 个任务需要花费 天完成。
有些任务之间存在依赖关系。若存在一条依赖关系:
表示任务 必须在任务 开始之前完成。
训练系统可以同时安排多个没有依赖冲突的任务。也就是说,只要一个任务的所有前置任务都已经完成,它就可以立刻开始。
请你求出完成所有任务至少需要多少天。
如果这些依赖关系存在矛盾,导致无法完成所有任务,输出 。
输入格式
第一行包含两个整数 ,分别表示任务数量和依赖关系数量。
第二行包含 个整数:
表示每个任务需要花费的天数。
接下来 行,每行包含两个整数 ,表示任务 必须在任务 之前完成。
输出格式
输出一行一个整数。
如果可以完成所有任务,输出完成所有任务至少需要多少天;否则输出 。
输入输出样例 #1
输入 #1
5 5
3 2 4 6 1
1 3
2 3
3 4
2 5
5 4
输出 #1
13
样例解释 #1
任务 需要 天,任务 需要 天。
任务 必须等任务 和任务 都完成后才能开始,因此任务 最早在第 天后开始,完成时间为:
任务 必须等任务 完成后开始,完成时间为:
任务 必须等任务 和任务 都完成后才能开始,因此任务 最早在第 天后开始,完成时间为:
所以完成所有任务至少需要 天。
输入输出样例 #2
输入 #2
3 3
1 2 3
1 2
2 3
3 1
输出 #2
-1
样例解释 #2
任务之间形成了循环依赖:
没有任何任务能够正常完成所有依赖,因此输出 。
数据范围与约定
对于所有测试数据,保证:
$$1 \le n \le 2\times 10^5,\quad 0 \le m \le 2\times 10^5,\quad 1 \le t_i \le 10^9 $$| 测试点 | 分值 | 特殊性质 | |||
|---|---|---|---|---|---|
| 无 | |||||
| 无 | |||||
特殊性质 :保证没有任何依赖关系。
特殊性质 :保证所有依赖关系形如 ,即任务构成一条链。
特殊性质 :保证依赖关系中不存在循环。
京公网安备11010802045784号