問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
特殊な根付き木の 1 つとしてヒープがあります。
ヒープには次のような特徴があります。
・親要素の値は子要素よりも常に大きいか等しい(または常に小さいか等しい)
親要素の値が子要素よりも常に大きいか等しいヒープを最大ヒープ、常に小さいか等しいヒープを最小ヒープといいます。
この問題では最大ヒープを扱います。
一番上の頂点を根とした場合、上の根付き木は最大ヒープですが、下の根付き木は水色の部分が最大ヒープの条件を満たしていないため、最大ヒープではありません。
根付き木の頂点の値・辺についての情報が与えられるので、この根付き木が最大ヒープであるかどうかを判定してください。
N R
a_1 b_1
...
a_{N-1} b_{N-1}
値
a_i , b_i が与えられます。ただし、a_i を値として持つ頂点が b_i を値として持つ頂点の親であることが保証されています。(1 ≦ i ≦ N-1)
・与えられた根付き木が最大ヒープになっているのであれば "YES" を、そうでなければ "NO" を 1 行で出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 100
・1 ≦ R ≦ N
・1 ≦ a_i , b_i ≦ 100,000 (1 ≦ i ≦ N-1)
・与えられる木の中に同じ値が 2 つ以上含まれていないことが保証されている。
5 10
10 11
10 9
9 3
3 2
NO
10 91753
91753 76540
76540 31536
31536 14625
31536 22346
91753 36347
22346 5911
91753 26082
76540 70927
36347 32065
YES