로봇 모으기
시간 제한2초메모리 제한256 MB
빨간색과 초록색 버튼을 순서대로 눌러 모든 교차로에 흩어진 로봇을 하나의 교차로에 모을 수 있는지 판단합니다.
문제
당신이 보지 않는 사이에 로봇 대가 스스로 움직이기 시작해 고향 마을 곳곳으로 흩어졌다. 마을에는 교차로가 개 있고 0번부터 번까지 번호가 붙어 있으며, 교차로마다 로봇이 정확히 한 대씩 서 있다. 교차로 에는 자기 자신이 아닌 교차로를 가리키는 빨간 표지판 가 하나, 초록 표지판 가 하나 있다.
리모컨의 빨간 버튼을 누르면 모든 로봇이 동시에 빨간 표지판을 따라 움직인다. 교차로 에 있던 로봇은 로 간다. 초록 버튼을 누르면 모든 로봇이 초록 표지판을 따라 로 간다. 버튼을 적당한 순서로 눌러 로봇 대를 모두 같은 시각에 같은 교차로로 모을 수 있는지 판정하는 프로그램을 작성하라.
입력
첫 줄에 데이터 집합의 개수 가 주어진다 (). 각 데이터 집합은 서로 독립이고 같은 방법으로 처리한다.
각 데이터 집합은 세 줄로 이루어진다.
- 첫 줄에는 데이터 집합 번호 와 교차로의 개수 이 주어진다. 는 1부터 까지 순서대로 붙는다.
- 둘째 줄에는 이 공백으로 구분되어 주어진다 (, ).
- 셋째 줄에는 이 공백으로 구분되어 주어진다 (, ).
이고, 모든 데이터 집합의 을 더한 값은 2000을 넘지 않는다. 한 교차로의 두 표지판이 같은 곳을 가리킬 수도 있다. 즉 인 교차로가 있을 수 있다.
출력
데이터 집합마다 한 줄씩 출력한다. 그 줄에는 데이터 집합 번호 , 공백 하나, 그리고 로봇을 모두 한 교차로에 모을 수 있으면 YES를, 없으면 NO를 출력한다.
힌트
예제의 두 번째 데이터 집합에서는 초록, 빨강, 빨강, 초록 순서로 버튼을 누르면 로봇이 모두 2번 교차로에 모인다.