페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2523

트랙퍼즐 1s 1MB

문제

연속된 3개의 디스크를 뒤집을 수 있는 회전판이 있는 타원형의 트랙에 검은색과 흰색의 디스크가 무작위로 섞여있는 퍼즐이 있다. 그림 1처럼 트랙에 8개의 검정색 디스크와 10개의 흰색 디스크가 있으면, 회전판위에 있는 3개의 디스크를 뒤집거나 디스크들을 시계방향으로 한 칸씩 이동할 수 있다.

 

 

이와 같은 방법으로 같은 색끼리 인접하게 모으는 것이 이 퍼즐의 목표이다.

 

 

당신은 주어진 순서가 목표에 도달할 수 있는지를 판단하는 프로그램을 만드는 것이다. 가능하다면 “YES”, 불가능하면 “NO”를 출력하는 프로그램을 작성하시오.


입력

입력은 여러 개의 테스트 케이스로 구성된다. 첫 번째 줄에는 테스트케이스의 개수 T가 입력된다. 그 다음부터 T줄에 각 테스트 케이스가 주어진다. 각 테스트케이스의 첫 정수는 디스크의 개수(흰색+검정색 최소 10개, 최대 30개)이고 이어서 디스크의 처음 상태가 0또 1로 공백으로 구분하여 주어진다. 0은 흰색 디스크, 1은 검정색 디스크이다.


출력

각 테스트케이스 별로 “YES” 또는 “NO”를 각 줄에 출력한다.


예제

2

18 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1
14 1 1 0 0 1 1 1 0 0 1 1 0 1 0
YES

NO

출처

ACM 아시아지역 대전2001 F
로그인해야 코드를 작성할 수 있어요.