Ստուգել BFS-ի շրջանցման վավերությունը

Տրված է ծառ (գրաֆ, որը չունի ցիկլեր) n գագաթներով, ինչպես նաև BFS (Լայնությամբ որոնում) ալգորիթմի արդյունքում ստացված այցելությունների հերթագայությամբ։ Ձեզ խնդրում են ստուգել, արդյոք այդ այցելությունների հերթագայությունը հնարավոր է։

Ալգորիթմը միշտ սկսում է 1-ին գագաթից և անցնում է հարևանների վրայով առանց հատուկ հերթագայության։ Ծրագիրը ելքում պետք է տպի Yes, եթե տվյալ ծառի պարագայում նշված շրջանցումը հնարավոր է, իսկ հակառակ դեպքում – No։

Հիշեցնենք, որ յուրաքանչյուր ծառում կա בדיוק n-1 կող։

Մուտք

Մուտքի առաջին տողում տրված է n ամբողջ թիվը (1 ≤ n ≤ 100000):

Հաջորդ n-1 տողերից յուրաքանչյուրում տրված են զույգ整数եր (1 ≤ ≤ n), որոնք ներկայացնում են ծառի կողերը:

Այնուհետև տրված է մեկ տող, որտեղ կան n բացատով առանձնացված整数եր (1 ≤ ≤ n), որոնք ցույց են տալիս BFS ալգորիթմի այցելությունների հերթագայությունը:

Ելք

Ծրագիրը պետք է տպի Yes, եթե նկարագրված շրջանցումը վավեր է, իսկ հակառակ դեպքում – No:

Օրինակներ

Մուտք

Ելք

4
1 2
1 3
2 4
1 2 3 4

Yes

4
1 2
1 3
2 4
1 2 4 3

No

Constraints

Time limit: 4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue