플립과 시프트
시간 제한1초메모리 제한128 MB
원형으로 놓인 이진 수열에서 세 연속 원소의 양 끝을 맞바꾸는 연산을 반복해 1과 0을 각각 하나의 연속 구간으로 모을 수 있는지 판정한다.
문제
타원형 트랙 위에 검은색 원판과 흰색 원판이 임의의 순서로 한 줄(원형 수열)로 놓여 있습니다.
이 퍼즐에서는 플립(flip) 이라는 동작을 사용할 수 있습니다. 플립은 연속한 세 개의 원판을 골라 그림처럼 통째로 뒤집는(180° 회전시키는) 동작으로, 가운데 원판은 제자리에 두고 양 끝의 두 원판만 서로 자리를 바꿉니다. (Figure 1 참고) 트랙 위 어느 위치의 세 원판에 대해서도 플립을 할 수 있습니다.


원형으로 배치된 원판들의 색 수열이 주어질 때, 플립을 유한 번 수행하여 (Figure 2처럼) 검은색 원판끼리, 흰색 원판끼리 각각 한 덩어리로 연속하게 모을 수 있는지 판단하는 프로그램을 작성하세요.
입력
첫째 줄에 테스트 케이스의 개수 가 주어집니다.
각 테스트 케이스는 한 줄로 이루어집니다. 줄의 맨 앞 수는 수열의 길이 () 이고, 이어서 원판을 나타내는 개의 수가 주어집니다. 각 수는 원판의 색을 나타내며 은 흰색 원판, 은 검은색 원판입니다. 여기서 은 흰색() 원판의 개수, 은 검은색() 원판의 개수입니다. 모든 수는 공백으로 구분됩니다.
출력
각 테스트 케이스마다 흰색 원판과 검은색 원판을 각각 한 덩어리로 분리할 수 있으면 YES 를, 그렇지 않으면 NO 를 한 줄에 출력합니다.