CF901D.Weighting a Tree
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a connected undirected graph with n vertices and m edges. The vertices are enumerated from 1 to n .
You are given n integers c1,c2,...,cn , each of them is between −n and n , inclusive. It is also guaranteed that the parity of cv equals the parity of degree of vertex v . The degree of a vertex is the number of edges connected to it.
You are to write a weight between −2⋅n2 and 2⋅n2 (inclusive) on each edge in such a way, that for each vertex v the sum of weights on edges connected to this vertex is equal to cv , or determine that this is impossible.
输入格式
The first line contains two integers n and m ( 2<=n<=105 , n−1<=m<=105 ) — the number of vertices and the number of edges.
The next line contains n integers c1,c2,...,cn ( −n<=ci<=n ), where ci is the required sum of weights of edges connected to vertex i . It is guaranteed that the parity of ci equals the parity of degree of vertex i .
The next m lines describe edges of the graph. The i -th of these lines contains two integers ai and bi ( 1<=ai,bi<=n ; ai=bi ), meaning that the i -th edge connects vertices ai and bi .
It is guaranteed that the given graph is connected and does not contain loops and multiple edges.
输出格式
If there is no solution, print "NO".
Otherwise print "YES" and then m lines, the i -th of them is the weight of the i -th edge wi ( −2⋅n2<=wi<=2⋅n2 ).
输入输出样例
输入#1
3 3 2 2 2 1 2 2 3 1 3
输出#1
YES 1 1 1
输入#2
4 3 -1 0 2 1 1 2 2 3 3 4
输出#2
YES -1 1 1
输入#3
6 6 3 5 5 5 1 5 1 4 3 2 4 3 4 5 3 5 5 6
输出#3
YES 3 5 3 -1 -3 5
输入#4
4 4 4 4 2 4 1 2 2 3 3 4 4 1
输出#4
NO