004 - 演算装置の接続
時間制限 1 秒 / メモリ制限 256 MB / 得点 6 / x 1 /
問題
あなたは、複数の演算装置を互いに接続して、特殊な処理を行おうとしている。演算装置にはいくつかの接続ポートがあり、一つのポートは他の演算装置の一つのポートにだけ接続できる。異なる演算装置の接続ポート同士をつなげることで、それらの演算装置を接続できる。行おうとしている処理は、以下の性質を持っている。
- 演算装置に接続されていない接続ポートがあると、処理が失敗する。
- 一つの演算装置の複数のポートが同じ演算装置に直接接続していると、処理が失敗する。
あなたは、使用する演算装置の数とそれぞれの演算装置の接続ポートの数がわかった時点で、処理が成功する接続方法があるかどうか判別できることに気がついた。
演算装置の数とそれぞれの演算装置の接続ポート数が与えられたとき、処理が成功する接続方法があるかどうかを出力するプログラムを作成せよ。
入力
入力は以下の形式で与えられる。
$N$ $a_1$ $a_2$ ... $a_N$
1行目に演算装置の数$N$ ($1 \leq N \leq 200,000$)が与えられる。続く1行に、$i$番目の演算装置の接続ポートの数$a_i$ ($1 \leq a_i \leq 200,000$)が与えられる。ただし、$a_i$の総和は200,000以下である。
出力
処理が成功する接続方法がある場合は「 Yes 」、そうでない場合は「 No 」を出力する。
入出力例
入力例1
4 3 3 2 2
出力例1
Yes
入力例2
3 2 3 3
出力例2
No