요정 토너먼트 줄 세우기
시간 제한5초메모리 제한512 MB
2^N명 엘프를 토너먼트 초기 순서에 배치해 각 민감한 엘프가 지정된 친구와 K 라운드까지 대결하지 않게 할 수 있는지 판단합니다.
문제
요정 나라에서 요정 명이 참가하는 토너먼트를 연다. 대회가 시작되기 전에 요정마다 부터 까지 서로 다른 번호를 붙이고, 요정 대통령이 원하는 순서로 모두를 한 줄로 세운다.
경기는 요정 두 명이 치르고 언제나 승자와 패자가 갈린다. 무승부는 없다. 1라운드에서는 줄의 첫 번째 요정과 두 번째 요정이 맞붙고, 세 번째와 네 번째가 맞붙는 식으로 진행한다. 진 요정 명은 줄에서 빠지고 이긴 요정 명은 자리를 그대로 지키며, 2라운드도 같은 방식으로 남은 요정을 짝지어 치른다. 라운드가 끝나면 한 명만 남고, 그 요정이 우승한다.
이 중 명은 예민하다. 번호가 인 예민한 요정은 친구 명의 명단이 있고, 처음 개 라운드 안에 그 명단에 있는 친구와 경기를 하게 되면 슬퍼한다. 친구 관계는 한쪽만 성립하기도 한다. 요정 가 요정 를 친구로 여겨도 요정 는 요정 를 친구로 여기지 않을 수 있다.
대통령은 경기 결과가 어떻게 나오든 슬퍼하는 요정이 한 명도 없도록 처음 순서를 정하려고 한다. 그런 순서가 있는지 판정하라.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 각 테스트 케이스의 첫 줄에는 정수 과 이 주어진다. 이어서 두 줄로 이루어진 묶음이 개 주어진다. 각 묶음의 첫 줄에는 정수 , , 가 주어지고, 둘째 줄에는 요정 의 친구 번호 개가 주어진다.
제한
- 이고, 개의 는 모두 다르다
- 친구 번호는 모두 이상 이하이고, 와 다르며, 요정 의 명단에 두 번 나오지 않는다
출력
각 테스트 케이스마다 "Case #x: "를 출력하고, 슬퍼하는 요정이 하나도 없게 줄을 세울 수 있으면 YES를, 그렇지 않으면 NO를 이어서 한 줄에 출력한다. x는 1부터 시작하는 테스트 케이스 번호이다.