训练排程(schedule)

题目描述

DAMON THRONE\text{DAMON THRONE} 的训练系统中有 nn 个学习任务。

ii 个任务需要花费 tit_i 天完成。

有些任务之间存在依赖关系。若存在一条依赖关系:

uvu \to v

表示任务 uu 必须在任务 vv 开始之前完成。

训练系统可以同时安排多个没有依赖冲突的任务。也就是说,只要一个任务的所有前置任务都已经完成,它就可以立刻开始。

请你求出完成所有任务至少需要多少天。

如果这些依赖关系存在矛盾,导致无法完成所有任务,输出 1-1

输入格式

第一行包含两个整数 n,mn,m,分别表示任务数量和依赖关系数量。

第二行包含 nn 个整数:

t1,t2,,tnt_1,t_2,\ldots,t_n

表示每个任务需要花费的天数。

接下来 mm 行,每行包含两个整数 u,vu,v,表示任务 uu 必须在任务 vv 之前完成。

输出格式

输出一行一个整数。

如果可以完成所有任务,输出完成所有任务至少需要多少天;否则输出 1-1

输入输出样例 #1

输入 #1

5 5
3 2 4 6 1
1 3
2 3
3 4
2 5
5 4

输出 #1

13

样例解释 #1

任务 11 需要 33 天,任务 22 需要 22 天。

任务 33 必须等任务 11 和任务 22 都完成后才能开始,因此任务 33 最早在第 33 天后开始,完成时间为:

3+4=73+4=7

任务 55 必须等任务 22 完成后开始,完成时间为:

2+1=32+1=3

任务 44 必须等任务 33 和任务 55 都完成后才能开始,因此任务 44 最早在第 77 天后开始,完成时间为:

7+6=137+6=13

所以完成所有任务至少需要 1313 天。

输入输出样例 #2

输入 #2

3 3
1 2 3
1 2
2 3
3 1

输出 #2

-1

样例解释 #2

任务之间形成了循环依赖:

12311\to2\to3\to1

没有任何任务能够正常完成所有依赖,因此输出 1-1

数据范围与约定

对于所有测试数据,保证:

$$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 $$1u,vn,uv1 \le u,v \le n,\quad u\ne v
测试点 分值 nn mm tit_i 特殊性质
121\sim 2 1010 20\le 20 100\le 100
343\sim 4 2020 2000\le 2000 =0=0 109\le 10^9 A\text{A}
565\sim 6 2000\le 2000 B\text{B}
787\sim 8 105\le 10^5 C\text{C}
9109\sim 10 3030 2×105\le 2\times 10^5

特殊性质 A\text{A}:保证没有任何依赖关系。

特殊性质 B\text{B}:保证所有依赖关系形如 ii+1i\to i+1,即任务构成一条链。

特殊性质 C\text{C}:保证依赖关系中不存在循环。