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

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

Diagonals

시간 제한8초메모리 제한1024 MB

요약
각 칸에 대각선을 하나씩 그어 교차점에 적힌 개수와 맞추고 대각선이 고리를 이루지 않도록 한다.
난이도

보통10점 중 6점

유형
백트래킹, 그래프, 유니온 파인드, 완전 탐색
정답자
아직 제출이 없습니다

문제

Diagonals는 정사각형 격자에서 하는 연필 퍼즐이다. 플레이어는 격자의 모든 칸에 왼쪽 위에서 오른쪽 아래로, 또는 왼쪽 아래에서 오른쪽 위로 대각선을 하나씩 그려야 한다. 다음 두 가지 조건을 만족해야 한다.

  • 격자선의 교차점 중 일부에는 00부터 44까지의 정수가 적혀 있다. 이 수는 그 점에 닿아야 하는 대각선의 정확한 개수이다.
  • 어떤 크기나 모양의 고리도 대각선으로 만들어져서는 안 된다.

다음은 5 ⁣× ⁣55\!\times\!5 예시와 그 유일한 해이다.

격자의 교차점에 적힌 수가 주어지면 퍼즐을 푼다.

입력

첫째 줄에는 정수 nn (1≤n≤81 \le n \le 8)이 주어진다. 이는 격자의 크기이다.

다음 n+1n+1개의 줄에는 각각 문자열 ss (∣s∣=n+1|s|=n+1, s∈{0,1,2,3,4,+}∗s \in \{\texttt{0},\texttt{1},\texttt{2},\texttt{3},\texttt{4},\texttt{+}\}^\ast)가 주어진다. 이는 격자의 교차점을 나타내며, '+'는 그 교차점에 수가 없음을 뜻한다.

입력 데이터는 퍼즐의 해가 정확히 하나가 되도록 주어진다.

출력

퍼즐의 해를 나타내는 nn개의 줄을 출력한다. 각 줄은 정확히 nn개의 문자로 이루어지며, 각 문자는 '/' 또는 '\'이어야 한다.

예제 1은 문제 설명의 예시에 해당한다.

예제3

  1. 예제 1

    입력
    5
    +1+2++
    1++11+
    +3+2++
    02+++1
    ++3+1+
    +1+++1
    
    예상 출력
    \\/\\
    \/\\/
    \\\\\
    ////\
    //\\\
    
  2. 예제 2

    입력
    3
    ++++
    +1+1
    +31+
    +0+0
    
    예상 출력
    /\/
    ///
    /\/
    
  3. 예제 3

    입력
    4
    +++++
    +3++2
    ++3++
    +3+3+
    ++2+0
    
    예상 출력
    \//\
    \\//
    \\\/
    /\//