시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 111 | 34 | 27 | 30.000% |
윗면과 네 개의 옆면, 총 다섯 개의 면에 정수가 적힌 정육면체 모양의 상자가 n2개가 있다. 이 상자들을 n행 n열로 배열하는 퍼즐 문제를 풀어보자. 단 다음의 조건을 만족해야 한다.
다음과 같은 예를 들어 보자.
동그라미 안에 적힌 것은 상자의 윗면에 적힌 숫자이고, 그 둘레에 적힌 것이 상자의 네 옆면에 적힌 숫자이다. 9개의 상자를 위와 같이 배열하면, 조건에 맞게 퍼즐을 푼 것이다.
각 상자에 적힌 숫자들이 주어졌을 때 위와 같이 퍼즐을 푸는 프로그램을 작성하시오.
첫째 줄에 n이 주어진다. (2 ≤ n ≤ 5) 둘째 줄부터 한 줄에 한 개씩 상자의 정보가 주어진다. 맨 처음 수는 윗면에 적힌 정수이고, 나머지 네 개의 수는 옆면에 적힌 정수를 위에서 보았을 때의 시계방향으로 나열한 것이다.
윗면에 적힌 정수는 n2보다 작거나 같은 자연수이고 중복되지 않는다. 옆면에 적힌 정수는 9보다 작거나 같은 음이 아닌 정수이다. 항상 풀 수 있는 퍼즐만 입력으로 주어진다.
먼저, 상자 윗면에 적힌 정수를 행렬로 만들어 출력한다. 이어서, 각각의 상자에 대해 주어진 상태에서 시계방향으로 몇 번의 회전을 거쳤는지 0 이상 3 이하의 정수로 나타낸 것을 행렬로 만들어 출력한다.
3 1 3 6 2 0 2 5 0 0 2 3 0 4 3 0 4 0 8 5 4 5 2 4 0 0 6 5 6 9 6 7 0 0 3 8 8 9 2 0 4 9 3 0 5 6
3 4 7 1 6 9 5 8 2 0 0 0 0 0 0 0 0 0