BFS トラバーサルの正当性を確認する
サイクルを含まないグラフ(木)として頂点数が n の木が与えられており、BFS アルゴリズムによる訪問順序が示されています。このとき、その訪問順序が実際にあり得るかどうかを判定する問題です。
アルゴリズムは常に頂点 1 から開始し、近接する頂点を特定の順番ではなく任意の順番で探索します。与えられた木に対してその訪問順序が可能であれば Yes、そうでなければ No を出力してください。
なお、木は必ず n-1 本の辺を持つことを思い出してください。
入力
最初の行には整数 n (1 ≤ n ≤ 100000) が与えられます。
続く n-1 行には、それぞれ (1 ≤ ≤ n) という形式で辺が与えられます。
その後の行には、BFS アルゴリズムの訪問順序を表す n 個の整数 (1 ≤ ≤ n) が空白区切りで与えられます。
出力
与えられたシナリオが成立する場合は Yes、そうでない場合は No を出力してください。
例
入力 | 出力 |
|---|---|
4 | Yes |
4 | No |
Constraints
Time limit: 4 seconds
Memory limit: 512 MB
Output limit: 1 MB