luogu#P6755. [BalticOI 2013 Day1] Pipes

[BalticOI 2013 Day1] Pipes

题目描述

给定一个 NNMM 边的无向图,保证图连通。现在每个点都有一定量的水,现在可以在一条边上进行操作:

  • 让水流出:给定 dd,假设长度为 mm,流的时间为 ss,那么总共失水速度为 2dm3s\dfrac{2dm^3}{s},这条边两边的每个点的失水速度为 dm3s\dfrac{dm^3}{s}
  • 让水流进:给定 pp,假设长度为 mm,流的时间为 ss,那么总共得水速度为 2pm3s\dfrac{2pm^3}{s},这条边两边的每个点的得水速度为 pm3s\dfrac{pm^3}{s}

现在给定这个图,和每个点的水量的变化速度,求每条边的水量的变化速度的构造方案。

输入格式

第一行两个整数 N,MN,M 代表点数和边数。
NN 个点编号为 11NN
接下来 NN 行每行一个整数 cic_i 代表这个点的水量变化速度,正数为得水,负数为失水。
接下来 MM 行每行两个整数代表一条边。

输出格式

如果不存在这样的构造方案或者有多解,只输出一个整数 0
如果存在这样的方案,输出 MM 行,每行一个整数代表每条边的水量变化速度。
得水为正数,失水为负数。

4 3
-1
1
-3
1
1 2
1 3
1 4
2
-6
2
4 5
1
2
1
2
1 2
2 3
3 4
4 1
1 3
0

提示

数据规模与约定

对于 100%100\% 的数据,1N1051 \le N \le 10^51M5×1051 \le M \le 5 \times 10^5109ci109-10^9 \le c_i \le 10^9,如果有解且唯一解,每个答案在 [109,109][-10^9,10^9] 的范围内。
对于其中 30%30\% 的数据,该图为一棵树。

说明

翻译自 BalticOI 2013 Day1 C Pipes