마방진과 스도쿠
시간 제한1초메모리 제한512 MB
16×16 스도쿠를 만들어 각 4×4 작은 보드가 모두 마방진이 되도록 한 가지 답을 출력하는 문제입니다.
문제
지수는 독일에 유학하던 중 수학 퍼즐을 열렬히 좋아하는 조슈아 뮐러와 친해졌다. 조슈아는 수학 퍼즐 중에서도 마방진(Zauberquadrat)과 스도쿠(Sudoku)를 특히 좋아한다. 조슈아의 말에 따르면 사람들은 스도쿠가 언제 풀어도 재미있다고 생각하지만, 마방진은 쉬운 풀이 방법이 잘 알려져 있어서 잘 풀지 않는다.
마방진의 정의는 다음과 같다.
마방진의 게임판은 크기의 격자이다. 각 칸에는 이상 이하의 정수를 정확히 한 번씩 써야 한다. 개의 가로줄, 개의 세로줄, 2개의 대각선 각각에 있는 수들의 합이 모두 같아야 한다.
스도쿠의 정의는 다음과 같다.
스도쿠의 게임판은 크기의 격자이며, 이 게임판은 크기의 작은 게임판 개로 나뉘어 있다. 각 칸에는 이상 이하의 정수를 쓸 수 있다. 개의 가로줄, 개의 세로줄, 개의 작은 게임판 각각에는 이상 이하의 정수가 정확히 한 번씩 나타나야 한다.
조슈아는 마방진을 스도쿠와 결합해 마방진의 매력을 알리려 한다. 그는 개의 작은 게임판이 모두 마방진이 되는 스도쿠를 만들고자 한다. 조슈아는 이면 이런 퍼즐을 만들 수 없다는 것을 쉽게 알아냈다. 얼마 뒤 그는 조건을 만족하는 () 퍼즐을 쉽게 만들었다.
조슈아는 지수에게 조건을 만족하는 퍼즐을 만들어 보라고 한다. 지수는 연구실에서 인턴 업무로 바쁘므로, 지수 대신 당신이 퍼즐을 만들어 보자.
입력
입력은 없다.
출력
16개의 줄에 걸쳐 만들어진 퍼즐을 출력한다. 답이 여러 개 있으면 아무거나 출력한다.