만드는 중입니다

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

부등호 퍼즐

면접 대비

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

요약
N×N 격자에 1부터 N²까지의 정수를 한 번씩 채워, 인접한 두 칸이 주어진 부등호를 만족하도록 배치를 구합니다.
난이도

보통10점 중 5점

유형
그래프, 위상 정렬
정답자
아직 제출이 없습니다

문제

부등호 퍼즐은 11부터 N2N^2까지의 정수를 모두 이용하여 N×NN \times N 격자판을 채우는 퍼즐이다. 격자 칸 사이에는 부등호가 그려져 있으며, 인접한 두 칸의 정수가 이 대소 관계를 만족해야 한다. 예를 들어 다음과 같은 3×33 \times 3 부등호 퍼즐이 주어졌다고 하자.

왼쪽 위 칸을 보자. 가로로 인접한 칸 사이와 세로로 인접한 칸 사이에 부등호가 적혀 있다. 주어진 대소 관계를 모두 만족하도록 칸에 정수를 채울 수 있다.

이처럼 대소 관계를 지키면서 11부터 99까지의 모든 정수를 사용해 퍼즐을 완성할 수 있다.

N×NN \times N 부등호 퍼즐이 주어질 때 퍼즐의 해답을 출력하는 프로그램을 작성하라. 가능한 답이 여러 가지라면 그중 아무거나 하나를 출력한다.

입력

첫 번째 줄에 NN이 주어진다.

편의상 N×NN \times N 격자판을 다음과 같은 행렬로 나타내자.

A1,1A1,2A1,3…A1,NA2,1A2,2A2,3…A2,NA3,1A3,2A3,3…A3,N⋮⋮⋮⋱⋮AN,1AN,2AN,3…AN,N\begin{matrix} A_{1,1} & A_{1,2} & A_{1,3} & \ldots & A_{1,N}\\ A_{2,1} & A_{2,2} & A_{2,3} & \ldots & A_{2,N}\\ A_{3,1} & A_{3,2} & A_{3,3} & \ldots & A_{3,N}\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ A_{N,1} & A_{N,2} & A_{N,3} & \ldots & A_{N,N} \end{matrix}

두 번째 줄부터는 가로로 인접한 격자 칸이 만족해야 하는 대소 관계를 나타내는 N×(N−1)N \times (N-1) 크기의 부등호 행렬 RR이 주어진다.

R1,1R1,2R1,3…R1,N−1R2,1R2,2R2,3…R2,N−1R3,1R3,2R3,3…R3,N−1⋮⋮⋮⋱⋮RN,1RN,2RN,3…RN,N−1\begin{matrix} R_{1,1} & R_{1,2} & R_{1,3} & \ldots & R_{1,N-1}\\ R_{2,1} & R_{2,2} & R_{2,3} & \ldots & R_{2,N-1}\\ R_{3,1} & R_{3,2} & R_{3,3} & \ldots & R_{3,N-1}\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ R_{N,1} & R_{N,2} & R_{N,3} & \ldots & R_{N,N-1} \end{matrix}

부등호 행렬의 원소 Rr,cR_{r,c}는 < 또는 >이며, 각각의 뜻은 다음과 같다.

  • <이면 Ar,c<Ar,c+1A_{r,c} < A_{r,c+1}을 만족해야 한다.
  • >이면 Ar,c>Ar,c+1A_{r,c} > A_{r,c+1}을 만족해야 한다.

이어서 세로로 인접한 격자 칸이 만족해야 하는 대소 관계를 나타내는 (N−1)×N(N-1) \times N 크기의 부등호 행렬 CC가 주어진다.

C1,1C1,2C1,3…C1,NC2,1C2,2C2,3…C2,NC3,1C3,2C3,3…C3,N⋮⋮⋮⋱⋮CN−1,1CN−1,2CN−1,3…CN−1,N\begin{matrix} C_{1,1} & C_{1,2} & C_{1,3} & \ldots & C_{1,N}\\ C_{2,1} & C_{2,2} & C_{2,3} & \ldots & C_{2,N}\\ C_{3,1} & C_{3,2} & C_{3,3} & \ldots & C_{3,N}\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ C_{N-1,1} & C_{N-1,2} & C_{N-1,3} & \ldots & C_{N-1,N} \end{matrix}

부등호 행렬의 원소 Cr,cC_{r,c}는 < 또는 >이며, 각각의 뜻은 다음과 같다.

  • <이면 Ar,c<Ar+1,cA_{r,c} < A_{r+1,c}을 만족해야 한다.
  • >이면 Ar,c>Ar+1,cA_{r,c} > A_{r+1,c}을 만족해야 한다.

항상 풀이가 존재하는 입력이 주어진다.

출력

NN개의 줄에 걸쳐 정수 NN개를 공백으로 구분하여 출력한다. ii번째 줄의 jj번째 수는 Ai,jA_{i,j}에 적힐 정수이다.

제한

2≤N≤1,0002 \le N \le 1{,}000

예제1

  1. 예제 1

    입력
    3
    > <
    > >
    < <
    < < >
    > > <
    
    예상 출력
    2 1 4
    8 7 3
    5 6 9