题目描述
给定一个有 N 个顶点、M 条边的有向图 G。顶点编号为 1,2,…,N。第 i 条边是从 ai 指向 bi 的有向边,且 ai<bi。
定义正整数序列 W=(W1,W2,…,WN) 的美丽度为:满足下述条件的正整数 x 的最大值。
- 对于 G 中从顶点 1 到顶点 N 的任意一条路径 (v1,…,vk)(v1=1,vk=N),都有 ∑i=1kWvi 是 x 的倍数。
给定整数序列 A=(A1,A2,…,AN)。请你构造正整数序列 W=(W1,…,WN),使得 Ai=−1 时 Wi=Ai,并求出所有可能的 W 的美丽度的最大值。如果最大值不存在,则输出 -1。
输入格式
输入按以下格式从标准输入给出。
N M
a1 b1
⋮
aM bM
A1 A2 … AN
输出格式
输出正整数序列 W 的美丽度可能取得的最大值。如果最大值不存在,则输出 -1。
样例 1
输入
4 4
1 2
1 3
2 4
3 4
-1 3 7 -1
输出
4
样例 2
输入
4 5
1 2
1 3
2 4
3 4
1 4
-1 3 7 -1
输出
1
样例 3
输入
4 4
1 2
1 3
2 4
3 4
3 -1 -1 7
输出
-1
样例 4
输入
5 5
1 3
3 5
2 3
3 4
1 4
2 -1 3 -1 4
输出
9
说明/提示
限制条件
- 2≤N≤3×105
- 1≤M≤3×105
- 1≤ai<bi≤N
- 若 i=j,则 (ai,bi)=(bj,aj)
- 给定的图 G 中,存在从顶点 1 到顶点 N 的路径。
- Ai=−1 或 1≤Ai≤1012
样例解释 1
从顶点 1 到顶点 N 的路径有 (1,2,4) 和 (1,3,4) 共两条。例如 W=(5,3,7,8) 的美丽度为 4。实际上,W1+W2+W4=16,W1+W3+W4=20,两者都是 4 的倍数。
样例解释 2
从顶点 1 到顶点 N 的路径有 (1,2,4)、(1,3,4)、(1,4) 共三条。例如 W=(5,3,7,8) 的美丽度为 1。
样例解释 3
例如 W=(3,10100,10100,7) 的美丽度为 10100+10。因为 W 的美丽度可以无限大,所以最大值不存在。
由 ChatGPT 4.1 翻译