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