만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

스도쿠 3

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

요약
n²×n² 스도쿠 판의 빈 칸을 1부터 n²까지의 수로 채웁니다. 행, 열, 부분 격자에 같은 수가 겹치지 않도록 최대한 많은 칸을 채우는 문제입니다.
난이도

보통10점 중 6점

유형
백트래킹, 행렬, 구현
정답자
아직 제출이 없습니다

문제

자하크를 물리칠 예언의 주인공인 전설적인 페르시아 영웅 페리이든은 강한 정신과 강한 육체가 함께 필요하다고 믿는다. 그는 얼마 전 일본 상인에게서 스도쿠라는 새로운 퍼즐을 배웠다. 스도쿠는 n2×n2n^2 \times n^2 칸의 격자판에서 진행된다. 전체 격자는 각각 n×nn \times n 크기인 n2n^2개의 부분 격자로 나뉜다. 각 칸은 비어 있거나 1부터 n2n^2까지의 정수를 가질 수 있다. 스도쿠 보드는 다음 조건을 모두 만족하면 유효하다. 1. 각 행의 모든 수는 서로 달라야 한다. 2. 각 열의 모든 수는 서로 달라야 한다. 3. 각 부분 격자의 모든 수는 서로 달라야 한다. 다음 그림은 빈칸이 없는 유효한 스도쿠 보드 두 개를 보여준다. 페리이든에게는 빈칸이 일부 있는 유효한 보드가 있고, 그는 도움을 요청했다. 보드를 유효한 상태로 유지하면서 빈칸을 최대한 많이 채우는 것이 과제다. 빈칸을 모두 채울 수 있는 방법이 적어도 하나 있다고 보장된다. 이 문제는 출력 전용 문제이므로 소스 코드를 제출할 필요가 없다. 테스트 케이스는 10개이다. 각 테스트 케이스는 스도쿠 보드의 초기 상태인 표 AA가 담긴 입력 파일로 주어진다. 빈칸 일부를 채운 최종 상태의 표 BB를 담은 출력 파일을 제출한다. 모든 A[i][j]A[i][j]와 B[i][j]B[i][j] 값(1≤i,j≤n21 \le i,j \le n^2)은 0 이상 n2n^2 이하의 정수이며, 0은 빈칸을 뜻한다.

입력

첫 줄에 nn이 주어진다. 1+i1+i번째 줄(1≤i≤n21 \le i \le n^2)에는 A[i][1]A[i][1]부터 A[i][n2]A[i][n^2]까지의 값이 공백으로 구분되어 주어진다.

출력

ii번째 줄(1≤i≤n21 \le i \le n^2)에 B[i][1]B[i][1]부터 B[i][n2]B[i][n^2]까지의 값을 공백으로 구분해 출력한다.

제한

2≤n≤202 \le n \le 20. 0≤A[i][j]≤n20 \le A[i][j] \le n^2. 보드 AA는 유효하며, 빈칸 전부를 유효성을 유지하면서 채울 수 있다.

예제1

  1. 예제 1

    입력
    2
    0 2 0 0
    3 0 0 0
    0 0 4 0
    0 0 0 1
    
    예상 출력
    4 2 3 0
    3 1 2 4
    1 3 4 2
    2 4 0 1