성채의 계층 구조
면접 대비시간 제한1초메모리 제한1024 MB
리크들이 직속 부하의 순서만 바꿔서 바닥 줄의 모티들을 오름차순으로 정렬할 수 있는지 판단합니다.
문제
잘 알려진 것처럼 Rick들의 성채에는 셀 수 없이 많은 Rick과 Morty가 살고 있다. 정확히는 명의 Rick과 명의 Morty다. 새 성채가 완전한 혼란에 빠지지 않도록, 어떤 사건에 누가 책임이 있는지 빠르게 가려낼 수 있는 명확한 계층 구조를 만들기로 했다.
먼저 Rick들은 중요도가 높은 순서대로 1부터 까지 번호를 붙인다. Morty들은 중요하지 않은 정도가 커지는 순서대로 1부터 까지 번호를 붙인다. 계층 구조는 뿌리가 있는 트리로 나타내며, 다음 조건을 따른다.
- 트리의 내부 정점은 정확히 개이고 리프는 정확히 개다. 모든 리프는 같은 깊이에 있다.
- 모든 내부 정점은 Rick이 차지하고, 모든 리프는 Morty가 차지한다. 모든 Morty는 계층의 맨 아래에 있어야 한다.
- 같은 층에 있는 Rick의 번호는 아래층 Rick의 번호보다 작다. 특히 루트에는 최고 권력자인 1번 Rick이 있다.
- 각 층에서 Rick은 왼쪽에서 오른쪽으로 번호가 오름차순으로 놓인다.
- 마지막에서 두 번째 층까지의 모든 Rick은 직속 부하가 적어도 두 명이다.
Rick들은 이 계층 구조를 금방 만들었다. 하지만 Morty들은 패닉에 빠져 맨 아래 층에 무작위 순서로 줄을 섰다. 이 혼란을 본 Rick들은 어차피 규칙을 별로 좋아하지 않으니, 각 층의 Rick 번호 순서 규칙은 없애기로 했다. 대신 맨 아래 층의 Morty는 왼쪽에서 오른쪽으로 번호가 오름차순이 되도록 정렬해야 한다.
각 Rick은 직속 부하들의 순서를 임의로 바꿀 수 있다. 다만 부하의 집합을 바꾸거나(새 부하를 데려오거나 기존 부하를 다른 Rick에게 넘기는 것) 다른 층으로 이동하는 것은 금지된다. 이 방법으로 Rick들이 모든 Morty를 오름차순으로 정렬할 수 있을까? 가능한 해법의 예는 아래와 같다.


초기 계층 구조와 Morty를 정렬하는 데 필요한 동작이다.
입력
첫 줄에는 Rick의 수 과 Morty의 수 이 공백으로 구분되어 주어진다().
둘째 줄에는 초기 계층 구조에서 왼쪽에서 오른쪽으로 나열된 Morty 번호 가 공백으로 구분되어 개 주어진다. 모두 서로 다르다().
셋째 줄에는 번호가 2부터 인 Rick들의 직속 상사 번호 이 주어진다().
넷째 줄에는 같은 형식으로, 초기 계층 구조에서 나열된 순서대로 Morty들의 직속 상사 번호 이 주어진다(). 주의: 은 번호 1인 Morty의 상사가 아니라 번 Morty의 상사 번호다.
입력은 항상 위의 제약을 만족한다고 보장된다.
출력
Rick들이 직속 부하의 순서를 바꾸어 모든 Morty를 오름차순으로 정렬할 수 있으면 YES를, 그렇지 않으면 NO를 한 줄에 출력한다.