问题描述
给定一个有N个顶点和M条边的有向图G。顶点编号为1,2,…,N。第i条边从顶点ai指向顶点bi,其中ai<bi。
正整数序列W=(W1,W2,…,WN) 的美丽度定义为满足以下条件的最大正整数x:
- 对于图G中从顶点1到顶点N的每一条路径(v1,v2,…,vk) (其中v1=1,vk=N), sumi=1kWvi 是x的倍数。
给定一个整数序列A=(A1,A2,…,AN)。找到一个正整数序列W=(W1,W2,…,WN) 的最大美丽度,使得Aineq−1impliesWi=Ai。如果不存在最大美丽度,则输出-1
。
约束条件
- 2leqNleq3times105
- 1leqMleq3times105
- 1leqai<bileqN
- 如果ineqj,则(ai,bi)neq(aj,bj)
- 在给定的图G中,从顶点1到顶点N存在一条路径。
- Ai=−1 或者 1leqAileq1012
输入
输入数据的格式如下所示,从标准输入中获取:
N M
a1 b1
vdots
aM bM
A1 A2 ldots AN
输出
输出正整数序列W的最大美丽度。如果最大美丽度不存在,则输出-1
。
样例输入1
4 4
1 2
1 3
2 4
3 4
-1 3 7 -1
样例输出1
4
从顶点1到顶点N有两条路径:(1,2,4)和(1,3,4)。例如,序列W=(5,3,7,8) 的美丽度为4。确实,W1+W2+W4=16 和 W1+W3+W4=20 都是4的倍数。
样例输入2
4 5
1 2
1 3
2 4
3 4
1 4
-1 3 7 -1
样例输出2
1
从顶点1到顶点N有三条路径:(1,2,4),(1,3,4) 和 (1,4)。例如,序列W=(5,3,7,8) 的美丽度为1。
样例输入3
4 4
1 2
1 3
2 4
3 4
3 -1 -1 7
样例输出3
-1
例如,序列W=(3,10100,10100,7) 的美丽度为10100+10。由于可以任意增加W的美丽度,因此不存在最大美丽度。
样例输入4
5 5
1 3
3 5
2 3
3 4
1 4
2 -1 3 -1 4
样例输出4
9