(良心出题人wzc说这是个简单拓扑dp,它就必然是一个简单拓扑dp,wzc是不会骗人的)
wzc在一张拓扑图上,他所在的起始位置被标记为0。除了起始位置外,还有被1到n这n个整数所标记的n个顶点,每个顶点i都有一个正整数值xi。
这些顶点之间存在着m条有向边。题目保证图中不存在有向环,且从顶点0出发必定能到达顶点n。
wzc希望从起点0出发经过某条路径到达顶点n,并且收集经过的所有结点上的数字,使得所有数字的和最大。
现在请你帮wzc求出他能得到的最大数字和是多少。
输入描述:
第一行包含两个整数n,m(1<=n<=1e5,1<=m<=min(n*(n+1)/2,2e5))表示除了起点外的顶点的个数,以及有向边的条数。
第二行为n个空格隔开的整数xi,分别代表顶点1,顶点2,.......顶点n上的数字。(1<=xi<=1000)
接下来m行,每行两个整数a,b(0<=a,b<=n),代表有一条有向边从顶点a指向顶点b。
输出描述:
输出一个整数,表示wzc能得到的最大数字和是多少。
示例1
输入
复制
5 6
9 5 8 7 4
0 4
2 1
1 5
3 5
4 3
4 2