CF546E Soldier and Traveling
题目描述
某个国度中有着 $n$ 座城市和 $m$ 条双向道路。$i$ 号城市中有着 $a_i$ 个士兵。现在士兵可以移动,每个士兵可以选择待在原地或者沿着**一条**双向道路走到一个**相邻的**城市。
问:给定数列 $b$,一轮移动后能不能满足对于每个城市 $i$,里边的士兵数是 $b_i$?如果可以,你需要给出士兵的移动方案。
输入格式
第一行两个整数 $n,m(1\le n\le 100,0\le m\le 200)$。\
第二行 $n$ 个整数 $a_1,a_2,\cdots,a_n(0\le a_i\le 100)$。\
第三行 $n$ 个整数 $b_1,b_2,\cdots,b_n(0\le b_i\le 100)$。\
接下来 $m$ 行,每行两个整数 $p,q$,表示一条连接城市 $p$ 和城市 $q$ 的边。
保证没有重边和自环。
输出格式
如果无解,输出一个字符串 `NO`。
否则,第一行输出一个字符串 `YES`,接下来 $n$ 行,每行输出 $n$ 个数,第 $i$ 行的第 $j$ 个数为你构造的方案中,移动后在城市 $j$ 的士兵有多少名来自城市 $i$。
如果有多种解,输出任意一种均可。
说明/提示
Translated by @[Epiphyllumthief ](/user/45212), Updated by @[chenxi2009](/user/1020063)