만드는 중입니다

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

순열 복원

면접 대비

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

요약
N x N 비교 행렬이 주어졌을 때 이 행렬을 만들어 내는 순열을 복원합니다. 맞는 순열이 없으면 -1을 출력합니다.
난이도

쉬움10점 중 3점

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

문제

길이가 NN인 순열은 11부터 NN까지의 정수가 정확히 한 번씩 나타나는 수열이다. 예를 들어 [1][1]과 [3,1,4,2,5][3,1,4,2,5]는 순열이지만, [−1,0,1,3,2][-1,0,1,3,2]와 [1,3,5,4][1,3,5,4]는 순열이 아니다.

길이가 NN인 순열 PP에 대한 비교 행렬 AA는 N×NN \times N 크기이다. 각 원소 AijA_{ij}는 PiP_i와 PjP_j의 크기 관계에 따라 다음과 같이 정해진다.

  • Pi>PjP_i > P_j이면 Aij=−1A_{ij} = -1이다.
  • Pi=PjP_i = P_j이면 Aij=0A_{ij} = 0이다.
  • Pi<PjP_i < P_j이면 Aij=1A_{ij} = 1이다.

비교 행렬 AA가 주어졌을 때, 이 행렬을 만족하는 순열 PP를 복원하는 프로그램을 작성하시오. AA를 만족하는 순열이 존재하지 않으면 -1을 출력한다.

입력

첫째 줄에 정수 NN이 주어진다. (1≤N≤10001 \leq N \leq 1000)

둘째 줄부터 NN개의 줄에 걸쳐 비교 행렬 AA가 주어진다. ii번째 줄에는 AA의 ii번째 행인 Ai1,Ai2,⋯ ,AiNA_{i1}, A_{i2}, \cdots, A_{iN}이 공백으로 구분되어 주어진다. 행렬의 모든 원소는 −1-1, 00, 11 중 하나이다.

출력

비교 행렬 AA를 만족하는 순열 PP가 존재하면 P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N을 공백으로 구분하여 차례대로 출력한다. 가능한 순열이 여러 가지라면 아무거나 출력한다.

존재하지 않으면 -1을 출력한다.

예제1

  1. 예제 1

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