#P1073. [NOIP 2009 提高组] 最优贸易

[NOIP 2009 提高组] 最优贸易

[NOIP 2009 提高组] 最优贸易

题目描述

有 nn 座城市和 mm 条道路,任意两座城市之间最多一条道路。道路可能是单向或双向的。城市 ii 的水晶球买入价和卖出价均为 aia_i。商人从城市 11 出发,最终到达城市 nn,途中可以重复经过城市。他可以进行至多一次交易:先在一个经过的城市买入一个水晶球,再在之后经过的城市卖出。也可以完全不交易。求最大利润。

输入格式

第一行输入 n,mn,m。第二行输入 nn 个整数,依次表示各城市价格。接下来 mm 行,每行输入 x,y,zx,y,z。z=1z=1 表示从 xx 到 yy 的单向道路,z=2z=2 表示两者之间的双向道路。

输出格式

输出最大利润。如果不交易最优,输出 00。

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

说明与数据范围

保证城市 11 可以到达城市 nn。1≤n≤1000001\le n\le100000,1≤m≤5000001\le m\le500000,1≤ai≤1001\le a_i\le100,1≤x,y≤n1\le x,y\le n,1≤z≤21\le z\le2。原题中,10% 的数据 n≤6n\le6,30% 的数据 n≤100n\le100,50% 的数据为无环图。本题包重新生成数据,每点等分,不沿用原题子任务比例。样例可走 1→4→5→4→51\to4\to5\to4\to5,在第一次到达 55 时以 11 买入、随后在 44 以 66 卖出,利润为 55。

来源

P1073