아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

펼친 주사위

시간 제한2초메모리 제한512 MB

요약
일부가 지워진 주사위 전개도에서 빈 면에 1부터 6까지의 서로 다른 숫자를 채워, 전개도의 다섯 변을 따라 인접한 면 숫자 차이의 합이 최소가 되도록 복원한다.
난이도

보통10점 중 6점

유형
완전 탐색, 구현, 조합론, 수학
정답자
아직 제출이 없습니다

문제

주사위는 던져졌다.

— 율리우스 카이사르 (기원전 100년 – 기원전 45년)

주사위는 아주 오랜 역사를 가진다. 주사위가 언제 어디에서 처음 생겨났는지는 분명하지 않다. 다만 기원전 3000년 이전부터 이집트에서 주사위를 사용했다는 사실은 알려져 있다.

그림 1: 주사위 사진

주사위를 평면에 나타낼 때에는 그림 2처럼 전개도로 표현하기도 한다. 아는 것처럼 같은 주사위를 나타내는 전개도는 여러 가지다. 하지만 이 문제에서는 그림 2와 같은 모양의 전개도만 생각한다. 편의를 위해 그림 3처럼 면에 번호를 붙인다.

그림 2: 주사위의 전개도

그림 3: 면의 번호

어느 날 M 박사는 주사위의 최적 전개도라는 개념을 도입했다. M-value가 최소인 전개도를 최적이라고 정의했다. M-value는 전개도에서 서로 인접한 면에 적힌 수들의 차의 합이다. 그림 2의 M-value는 |1 − 4| + |2 − 4| + |4 − 5| + |5 − 3| + |4 − 6| = 9이다. M 박사는 주사위에 대해 조금 잘못 알고 있어서 마주 보는 면에 적힌 수의 합이 항상 7인 것은 아니다. 그래도 각 면에는 1부터 6까지의 수가 하나씩 적혀 있고, 서로 다른 두 면에 같은 수가 적혀 있지는 않다.

연구 끝에 그는 여러 조건에서 최적 전개도를 찾아냈다. 그러나 안타깝게도 실수로 노트에 커피를 쏟아서 전개도의 일부를 읽을 수 없게 되었다.

여러분의 과제는 전개도의 일부만 보고 주사위의 전개도를 복원하는 프로그램을 작성하는 것이다.

그림 4: 예제 입력으로 주어진 전개도. 읽을 수 없는 면은 빈칸으로 표시했다.

입력

첫째 줄에는 테스트 케이스의 수를 나타내는 양의 정수 T가 주어진다. 다음 T개 줄에 테스트 케이스가 주어진다.

각 테스트 케이스는 ‘1’부터 ‘6’까지의 숫자 또는 알파벳 소문자 ‘x’ 중 하나인 문자 여섯 개로 이루어진 한 줄이다. i번째 문자는 그림 3에서 번호 i인 면에 대응한다. 숫자는 그 면에 적힌 수를 나타내고, ‘x’는 수를 읽을 수 없어 프로그램이 결정해야 함을 나타낸다. 어떤 테스트 케이스에도 같은 숫자가 두 번 이상 나오지 않는다.

출력

각 테스트 케이스마다, 입력에 주어진 면의 수는 그대로 두어야 한다는 조건에서 최적 전개도를 나타내는 숫자 여섯 개를 한 줄에 출력한다. i번째 숫자는 입력에서처럼 그림 3에서 번호 i인 면에 적힌 수를 나타내야 한다. 답이 여러 개라면 그중 아무거나 출력한다.

예제1

  1. 예제 1

    입력
    1
    x2xx36
    
    예상 출력
    124536