#M260823. 分配边权
分配边权
题目描述
小Z手上有一个 个点、 个边的无向图。每个节点有一个权值 。
小Z的任务是为图中的每条边 分配一个非负整数边权 ,使得该图满足以下条件:
至少存在一个顶点 ,使得对于图中的任意顶点 ,都有从顶点 到顶点 的最短路径长度恰好等于 。
若存在满足条件的边权分配方案,请输出每条边的权值;否则输出 。
输入格式
第一行包含两个正整数 和 ,代表图的顶点数和边数。
第二行包含 个整数 ,代表每个顶点的权值。
接下来 行,每行包含两个正整数 $u_j, v_j\left(1 \le u_j, v_j \le n, u_j \neq v_j\right)$,代表第 条边连接的两个顶点(保证没有重边、自环)。
输出格式
若存在满足条件的分配方案,输出 行,每行一个整数,第 行的整数代表第 条边的权值 。如果有多组解,输出任意一组即可。
若不存在满足条件的方案,输出 。
输入输出样例
3 3
0 2 3
1 2
2 3
1 3
2
3
3
样例 说明
4 3
2 2 2 2
1 2
2 3
2 4
-1
数据范围
$2 \le n \le 2 \times 10^5,n-1 \le m \le 2 \times 10^5$
相关
在下列比赛中: