배드 호스 (Small2)
면접 대비시간 제한5초메모리 제한512 MB
문제로 엮인 구성원을 같은 조에 문제 있는 쌍이 없도록 두 부서로 나눌 수 있는지 판단합니다.
문제
악당 연맹(Evil League of Evil)을 이끄는 배드 호스에게는 처리할 일이 많다. 최근 연맹 안에서 말다툼과 뒤통수치기가 너무 잦아지자, 배드 호스는 사이가 나쁜 회원을 떼어놓으려고 연맹을 두 부서로 나누기로 했다. 죄악의 순종마인 배드 호스는 회원을 어떻게 나눌지 직접 고민할 만큼 한가하지 않다. 그 일을 하라고 충직한 부하인 당신이 있는 것이다.
사이가 나쁜 회원 쌍의 목록이 주어진다. 각 회원을 두 부서 중 하나에 배정해서 어느 부서에도 사이가 나쁜 쌍이 함께 들어가지 않게 만들 수 있는지 판정하라. 입력에 이름이 등장하는 회원만 배정하면 된다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫째 줄에는 사이가 나쁜 회원 쌍의 개수 이 주어진다. 다음 개의 줄에는 각각 회원 두 명의 이름이 공백 하나로 구분되어 주어진다.
제한
- 회원 이름은 영문자와 밑줄 문자로만 이루어진다.
- 이름은 대소문자를 구분한다.
- 한 테스트 케이스 안에서 같은 쌍이 두 번 이상 주어지지 않는다.
- 각 쌍의 두 회원은 서로 다르다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호이고, 는 입력에 등장한 회원을 두 그룹으로 나누되 어느 그룹에도 사이가 나쁜 쌍이 들어가지 않게 할 수 있으면 Yes, 그렇지 않으면 No이다.