C. 分配边权

    传统题 1000ms 256MiB

分配边权

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“赛后递交”以递交本题。

题目描述

小Z手上有一个 nn 个点、mm 个边的无向图。每个节点有一个权值 aia_i。

小Z的任务是为图中的每条边 j(1≤j≤m)j\left(1 \le j \le m\right) 分配一个非负整数边权 wjw_j,使得该图满足以下条件:
∙ \hspace{23pt}\bullet\,至少存在一个顶点 s(1≤s≤n)s\left(1 \le s \le n\right),使得对于图中的任意顶点 i(1≤i≤n)i\left(1 \le i \le n\right),都有从顶点 ss 到顶点 ii 的最短路径长度恰好等于 aia_i。

若存在满足条件的边权分配方案,请输出每条边的权值;否则输出 -1\texttt{-1}。

输入格式

第一行包含两个正整数 nn 和 mm,代表图的顶点数和边数。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n,代表每个顶点的权值。

接下来 mm 行,每行包含两个正整数 $u_j, v_j\left(1 \le u_j, v_j \le n, u_j \neq v_j\right)$,代表第 jj 条边连接的两个顶点(保证没有重边、自环)。

输出格式

若存在满足条件的分配方案,输出 mm 行,每行一个整数,第 jj 行的整数代表第 jj 条边的权值 wj(0≤wj≤109)w_j\left(0 \le w_j \le 10^9\right)。如果有多组解,输出任意一组即可。

若不存在满足条件的方案,输出 -1\texttt{-1}。

输入输出样例

3 3
0 2 3
1 2
2 3
1 3
2
3
3

样例 #1\tt \#1说明

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$

0≤ai≤1090 \le a_i \le 10^9

【AC-014-Div2】算法组月赛 || Round · 14

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-9-1 0:00
结束于
2026-9-9 8:00
持续时间
3 小时
主持人
参赛人数
7