AT_arc106_b [ARC106B] Values
Description
[problemUrl]: https://atcoder.jp/contests/arc106/tasks/arc106_b
$ N $ 頂点 $ M $ 辺の単純無向グラフが与えられます。 $ i $ 番目の辺は頂点 $ c_i $ と頂点 $ d_i $ を結んでいます。
はじめ、頂点 $ i $ には値 $ a_i $ が書かれています。あなたは次の操作を $ 0 $ 回以上行うことで、操作後の各頂点の値をそれぞれ $ b_1 $,$ \cdots $,$ b_N $ にしたいと思っています。
- 辺を $ 1 $ つ選ぶ。選んだ辺が頂点 $ x $ と頂点 $ y $ を結んでいるとしたとき、次のいずれかを選んで行う。
- 値 $ a_x $ を $ -1 $ し、値 $ a_y $ を $ +1 $ する
- 値 $ a_x $ を $ +1 $ し、値 $ a_y $ を $ -1 $ する
適切に操作を行うことで目的を達成することが可能かどうかを判定してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ a_1 $ $ \cdots $ $ a_N $ $ b_1 $ $ \cdots $ $ b_N $ $ c_1 $ $ d_1 $ $ \vdots $ $ c_M $ $ d_M $
Output Format
適切に操作を行うことで目的を達成することが可能な場合は `Yes` 、可能でない場合は `No` と出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 0\ \leq\ M\ \leq\ 2\ \times\ 10^5 $
- $ -10^9\ \leq\ a_i,b_i\ \leq\ 10^9 $
- $ 1\ \leq\ c_i,d_i\ \leq\ N $
- 与えられるグラフは単純グラフである。すなわち、自己ループや多重辺は存在しない。
- 入力はすべて整数である。
### Sample Explanation 1
例えば、以下のように操作を行うことで、目的を達成できます。 - $ 1 $ 回目の操作で頂点 $ 1 $ と $ 2 $ を結ぶ辺を選び、$ a_1 $ を $ +1 $ し、 $ a_2 $ を $ -1 $ します。 - $ 2 $ 回目の操作で頂点 $ 2 $ と $ 3 $ を結ぶ辺を選び、$ a_2 $ を $ +1 $ し、 $ a_3 $ を $ -1 $ します。 以上の操作により、$ a_1=2 $ かつ $ a_2=2 $ かつ $ a_3=2 $ となります。
### Sample Explanation 2
はじめから目的が達成されていることもあります。
### Sample Explanation 3
どのように操作を行っても目的を達成できません。