测试工作

提交数: 105, 通过率: 43.81%, 平均分: 77.3

题目描述:

 Mr.dog被他原来的公司炒了。现在为了养家糊口的他,要尽快找到一个工作。现在有一个工作,但是这年头失业的人很多啊,因此公司不得不使用一个测试来选择自己需要的职工。
这个测试是这样的:从一个起始的城市出发,通过单向的路径来到其他的城市,并且经过每个城市可能会赚到一定的利润,或者交纳一定的费用,这样不断的行动,直到到达一个终点的城市。你的老板会在终点处等你,他会总结出你一路上花费的费用,或者是得到的利润,来决定你是否能够被雇佣。
为了更好的得到这份工作,Mr.dog设法得到了所有城市经过的纯利润Vi(如果是负数表示到这个城市不但得不到利润,还要花费),以及城市与城市的连通关系。假设一个城市没有能够从其他城市到达的道路,那么这个城市被看作起始的城市之一;假设一个城市没有能够到达其他城市的道路,那么这个城市被看作终点的城市之一;而Mr.dog的任务是将选择一个起始的结点出发,走出一条路径,这条路径在一个终点的城市结束,且这条路径包含的城市的总利润最大。

输入格式:

第一行有2个整数n,m(1 < = n < = 100000,1 < =m < = 1000000)后面紧接着n行,其中第i行描述Vi。
再后面紧接m行,第i行2个整数x,y,表示有一条从x到y的单向道路。数据保证没有点对(x,y)重复出现,并且保证无法从一个城市出发经过若干条路径后再回到这个城市。

输出格式:

只有一行,一个整数表示dog这次测试最多可以得到多少利润(或者说最少使用多少花费)

样例输入:

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

样例输出:

7
时间限制: 1500ms
空间限制: 256MB