그래픽 대혼란
시간 제한1초메모리 제한128 MB
소켓과 프로세서로 이루어진 두 트리형 카드가 소켓 간 케이블로 연결될 때, 모든 노드를 한 번씩 지나 되돌아오는 해밀턴 순환이 존재하는지 판별하는 문제입니다.
문제
바이트랜드에는 대표적인 그래픽 카드 제조사 Bitotronics와 3D-Bytes가 있다. 두 회사의 최상급 카드는 모두 처리 신호를 전달하는 전선으로 연결된 여러 개의 노드로 이루어진다. 노드에는 소켓과 프로세서 두 종류가 있으며, 한 카드의 배선은 항상 다음 조건을 만족한다.
- 각 소켓은 정확히 하나의 프로세서에만 연결되며, 다른 소켓과는 연결되지 않는다.
- 각 프로세서는 적어도 두 개의 다른 노드와 연결된다.
- 임의의 두 노드 사이에는 전선으로 이어지는 경로가 정확히 하나 존재한다. 즉, 한 카드의 연결 그래프는 트리이다.
Bitthew는 각 회사에서 카드를 하나씩 샀다. 우연히 두 카드의 소켓 개수가 같아서, 그는 Bitotronics 카드의 각 소켓을 3D-Bytes 카드의 서로 다른 소켓과 케이블로 하나씩 짝지어 연결했다(두 카드의 소켓을 일대일로 대응시킨다).
이제 그는 전선과 케이블을 따라 두 카드의 모든 노드를 정확히 한 번씩 방문하고 출발한 노드로 돌아오는 닫힌 경로로 신호를 보내려 한다(경로에서 이웃한 두 노드, 그리고 첫 노드와 마지막 노드는 전선 또는 케이블로 직접 연결되어 있어야 한다). 이러한 경로가 존재하는지 판단하여라.
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.
각 테스트 케이스의 첫 줄에는 세 정수 , , (, , )이 주어지며, 각각 한 카드에 있는 소켓의 수, Bitotronics 카드의 프로세서 수, 3D-Bytes 카드의 프로세서 수를 뜻한다. 노드의 이름은 다음과 같다.
- Bitotronics 소켓:
- Bitotronics 프로세서:
- 3D-Bytes 소켓:
- 3D-Bytes 프로세서:
이어지는 개의 줄에는 각각 전선으로 직접 연결된 서로 다른 두 Bitotronics 노드의 이름이 주어진다. 그다음 개의 줄에는 같은 형식으로 3D-Bytes 카드의 전선이 주어진다. 마지막 개의 줄에는 각각 케이블로 연결된, 서로 다른 카드에 속한 두 소켓의 이름이 주어진다. 모든 소켓은 정확히 한 줄에만 나타난다.
모든 토큰은 공백으로 구분되며, 순서대로 읽으면 된다.
출력
각 테스트 케이스마다 한 줄에, 조건을 만족하는 닫힌 경로가 존재하면 YES를, 그렇지 않으면 NO를 출력한다.
존재 여부만 출력하면 되며, 실제 경로를 출력할 필요는 없다.