//아직 sj 가 되지 않았습니다.
소들이 알파벳 직소 퍼즐을 푼다. 직소퍼즐은 R행과 C열로 (1<=R,C<=10) 되어있으며 가장자리는 일반 직소퍼즐처럼 웃긴 모양이 아니라 글자로 되어있다. 각각의 조각들은 숫자와 4개의 글자 (가장자리) 로 이루어져있다. 글자 '0' 의 경우에는 퍼즐 전체의 가장자리를 뜻한다. (하나의 퍼즐 조각은 여러 개의 '0' 가장자리를 가질 수도 있다.) 다음은 6 개의 조각들의 조립된 예시를 보여준다. (가장자리는 '0' 대신 직선으로 표기되었다.)
+---+ +---+ +---+ | 1 c c 3 d d 5 | +-d-+ + a + +-e-+ +-d-+ +-a-+ +-e-+ | 2 b b 4 b b 6 | +---+ +---+ +---+각각의 가장자리들은 모두 같은 알파벳으로 이루어져서 결합되어있는 것에 유의하라. 가장자리는 위, 아래, 오른쪽, 왼쪽으로 4개의 방향을 뜻한다. 각각의 조각들은 숫자와 시계방향 순서의 가장자리가 주어진다. (가장자리는 'a' 부터 'z' 까지의 알파벳 또는 '0' 으로 이루어진다.) 각각의 조각들은 순서에 맞게 회전되어야 한다.
조각들의 세트가 주어질 때, 적어도 한 가지의 완성할 수 있는 방법을 찾으시오. 퍼즐을 위해 주어지는 R행과 C열의 정보로 인해 더 쉽게 해결할 수 있을 것이다.
입력 2 3 1 c d 0 0 2 0 d b 0 3 c 0 d a 4 b a b 0 5 d 0 0 e 6 0 0 b e 출력 1 0 c d 0 3 0 d a c 5 0 0 e d 2 d b 0 0 4 a b 0 b 6 e 0 0 b
출처: USACO 2008 DEC silver 번역: KangJ