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

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

라틴 방진

면접 대비

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

요약
n x n 격자에 적힌 n진수 숫자를 읽고 라틴 방진인지 판별하며, 라틴 방진이면 축약형인지도 판정한다.
난이도

쉬움10점 중 2점

유형
구현, 배열, 시뮬레이션, 해시맵
정답자
아직 제출이 없습니다

문제

라틴 방진은 서로 다른 숫자 nn개로 채운 n×nn \times n 배열이고, 각 숫자가 모든 행에 정확히 한 번, 모든 열에도 정확히 한 번 나온다. (이 이름은 레온하르트 오일러가 이 주제를 다룬 논문에서 라틴 문자를 쓴 데서 유래했다.)

맨 윗 행과 맨 왼쪽 열이 둘 다 자연 순서로 놓인 라틴 방진을 축소형이라고 한다. 숫자 집합의 자연 순서는 값이 커지는 순서다.

n×nn \times n 배열을 읽어 라틴 방진인지 판정하고, 라틴 방진이면 축소형인지까지 판정하는 프로그램을 작성하라.

입력

첫째 줄에 정수 nn (2≤n≤362 \le n \le 36)이 주어진다. 다음 nn개의 줄에는 각각 nn진법 숫자가 nn개씩 주어진다. 값이 10보다 작은 자리는 문자 0부터 9까지로 적고, 값이 10부터 35까지인 자리는 대문자 A부터 Z까지로 적는다. 입력에 나오는 문자는 모두 nn진법에서 유효하다. 예를 들어 nn이 3이면 배열을 나타내는 nn개의 줄에는 0, 1, 2만 나온다.

출력

주어진 배열이 라틴 방진이 아니면 한 줄에 No를 출력한다. 라틴 방진이지만 축소형이 아니면 Not Reduced를 출력한다. 축소형 라틴 방진이면 Reduced를 출력한다.

예제4

  1. 예제 1

    입력
    3
    012
    120
    201
    
    예상 출력
    Reduced
    
  2. 예제 2

    입력
    4
    3210
    0123
    2301
    1032
    
    예상 출력
    Not Reduced
    
  3. 예제 3

    입력
    11
    0123458372A
    A9287346283
    0285475A834
    84738299A02
    1947584037A
    65848430002
    038955873A8
    947530200A8
    93484721084
    95539A92828
    04553883568
    
    예상 출력
    No
    
  4. 예제 4

    입력
    2
    01
    10
    
    예상 출력
    Reduced