유니콘 마구간 배치
시간 제한5초메모리 제한512 MB
빨간색, 노란색, 파란색 유니콘의 개수가 주어질 때, 이웃한 유니콘이 같은 색 털을 공유하지 않도록 원형으로 배치하고, 가능하면 사전순으로 가장 작은 문자열을 출력한다.
문제
유니콘 마리를 기르고 있다. 유니콘의 갈기에는 빨간 털, 노란 털, 파란 털 중 한 종류 또는 두 종류가 들어 있고, 갈기 색은 어떤 털이 들어 있는지로 정해진다.
- 한 종류의 털만 있는 갈기는 그 털의 색으로 보인다. 파란 털만 있는 갈기는 파란색이다.
- 빨간 털과 노란 털이 있는 갈기는 주황색으로 보인다.
- 노란 털과 파란 털이 있는 갈기는 초록색으로 보인다.
- 빨간 털과 파란 털이 있는 갈기는 보라색으로 보인다.
갈기가 빨간색, 주황색, 노란색, 초록색, 파란색, 보라색인 유니콘이 각각 , , , , , 마리 있다.
칸이 개인 원형 마구간을 지었다. 칸은 고리 모양으로 이어져 있어서 각 칸은 다른 두 칸과 맞닿는다. 이 칸마다 유니콘을 정확히 한 마리씩 넣으려고 한다. 그런데 유니콘은 스스로 희귀하다고 느껴야 하므로, 갈기에 같은 색 털을 하나라도 함께 가진 두 유니콘은 이웃한 칸에 둘 수 없다. 주황색 갈기와 보라색 갈기는 둘 다 빨간 털이 있으므로 이웃할 수 없다. 초록색 갈기와 노란색 갈기는 둘 다 노란 털이 있으므로 이웃할 수 없다.
유니콘을 모두 배치할 수 있는지 판정하고, 배치할 수 있으면 그 배치를 구하자.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다. 다음 개의 줄에 테스트 케이스가 하나씩 주어진다. 각 줄에는 정수 일곱 개 , , , , , , 가 공백으로 구분되어 주어진다.
제한
- 에 속하는 각 값 에 대해
- (유니콘의 갈기에는 한 가지 색 털만 있다)
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호이다. 유니콘을 모두 배치할 수 없으면 는 IMPOSSIBLE이다. 배치할 수 있으면 는 길이 인 문자열이고, 원하는 칸에서 시작해 시계 방향으로 읽은 배치를 나타낸다. 갈기가 빨간색인 유니콘은 R, 주황색은 O, 노란색은 Y, 초록색은 G, 파란색은 B, 보라색은 V로 적는다.
올바른 배치를 나타내는 문자열은 여러 개일 수 있다. 시작 칸을 다르게 잡아서 얻는 문자열까지 모두 모아, 그중 사전순으로 가장 앞서는 문자열 하나만 출력한다. 문자는 아스키 순서로 비교하므로 B < G < O < R < V < Y이다.
노트
칸은 고리를 이루므로 출력한 문자열의 첫 글자와 마지막 글자도 서로 이웃이다.