유니콘 마구간

여섯 가지 갈기 색의 개수가 주어질 때, 이웃한 두 유니콘이 같은 기본 색 털을 공유하지 않도록 원형 우리에 배치하고, 사전순으로 가장 앞서는 배열을 출력한다.

어려움8그리디구현수학완전 탐색아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

유니콘 NN마리를 기른다. 유니콘의 갈기에는 빨강, 노랑, 파랑 털 가운데 한 가지 또는 두 가지가 들어 있고, 갈기 색은 어떤 털이 들어 있는지로 정해진다.

  • 한 가지 털만 있으면 갈기는 그 털의 색으로 보인다. 파랑 털만 있는 갈기는 파랑이다.
  • 빨강 털과 노랑 털이 함께 있으면 주황으로 보인다.
  • 노랑 털과 파랑 털이 함께 있으면 초록으로 보인다.
  • 빨강 털과 파랑 털이 함께 있으면 보라로 보인다.

갈기가 빨강, 주황, 노랑, 초록, 파랑, 보라인 유니콘이 각각 RR, OO, YY, GG, BB, VV마리 있다.

NN개가 고리 모양으로 이어진 마구간을 지었다. 칸마다 이웃한 칸이 정확히 두 개다. 여기에 유니콘을 한 칸에 한 마리씩 넣으려 한다. 다만 갈기에 같은 색 털이 하나라도 함께 들어 있는 두 유니콘은 이웃할 수 없다. 주황 갈기와 보라 갈기는 둘 다 빨강 털이 있어서 이웃할 수 없고, 초록 갈기와 노랑 갈기는 둘 다 노랑 털이 있어서 이웃할 수 없다.

유니콘을 모두 넣을 수 있는지 판정하고, 넣을 수 있으면 배치를 출력한다.

입력

첫 줄에 테스트 케이스 수 TT가 주어진다. 다음 TT개의 줄에 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄에는 정수 일곱 개 NN, RR, OO, YY, GG, BB, VV가 공백으로 구분되어 있다.

제한

  • 1T1001 \le T \le 100
  • 3N10003 \le N \le 1000
  • R+O+Y+G+B+V=NR + O + Y + G + B + V = N
  • RR, OO, YY, GG, BB, VV는 모두 00 이상이다.

출력

테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx11부터 시작하는 테스트 케이스 번호다.

유니콘을 모두 넣을 수 없으면 yyIMPOSSIBLE이다. 넣을 수 있으면 yy는 길이가 NN인 문자열이고, 칸 하나를 골라 거기서부터 시계 방향으로 읽은 배치를 뜻한다. 빨강 갈기는 R, 주황은 O, 노랑은 Y, 초록은 G, 파랑은 B, 보라는 V로 쓴다. 칸이 고리를 이루므로 문자열의 첫 글자와 마지막 글자도 서로 이웃이다.

가능한 배치가 여럿이면, 시작 칸을 고르는 방법까지 포함해 얻을 수 있는 문자열 가운데 사전순으로 가장 앞서는 것 하나만 출력한다. 글자 순서는 B, G, O, R, V, Y 순이다.

설명

칸이 세 개인 마구간은 세 칸이 서로 모두 이웃이므로, 갈기 색이 같은 유니콘 두 마리를 함께 넣을 수 없다.

빨강, 노랑, 파랑 갈기가 두 마리씩일 때 BYBRYR는 규칙에 맞는 배치다. 사전순으로 더 앞서는 배치가 있으므로 답으로 출력하지는 않는다. 같은 조건에서 BYRYRB는 규칙 자체를 어긴다. 마지막 B와 첫 B가 이웃이기 때문이다.

BRYBGR도 규칙에 어긋난다. 파랑 갈기와 초록 갈기가 이웃하는데, 두 갈기 모두 파랑 털이 있다.