만드는 중입니다

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

경로 찾기

면접 대비

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

요약
최대 100개 정점의 방향 그래프가 인접 행렬로 주어질 때 간선을 한 개 이상 쓰는 경로가 존재하는 모든 순서쌍을 구해 출력합니다.
난이도

쉬움10점 중 3점

유형
그래프, 동적 계획법
정답자
아직 제출이 없습니다

문제

가중치가 없는 방향 그래프 GG가 주어진다. 모든 정점 쌍 (i,j)(i, j)에 대해 ii에서 jj로 가는 길이가 양수인 경로가 있는지 판정하는 프로그램을 작성하시오.

경로의 길이가 양수라는 것은 간선을 한 개 이상 지난다는 뜻이다. 따라서 ii에서 출발해 다시 ii로 돌아오는 경로가 있을 때만 (i,i)(i, i)의 답이 1이 된다.

입력

첫째 줄에 정점의 개수 NN (1≤N≤1001 \le N \le 100)이 주어진다.

둘째 줄부터 NN개 줄에 그래프의 인접 행렬이 주어진다. ii번째 줄의 jj번째 숫자가 1이면 ii에서 jj로 가는 간선이 있고, 0이면 없다. ii번째 줄의 ii번째 숫자는 항상 0이다.

출력

NN개의 줄에 답을 인접 행렬 형식으로 출력한다. 정점 ii에서 jj로 가는 길이가 양수인 경로가 있으면 ii번째 줄의 jj번째 숫자를 1로, 없으면 0으로 출력한다. 한 줄에 있는 숫자는 공백 하나로 구분한다.

예제2

  1. 예제 1

    입력
    3
    0 1 0
    0 0 1
    1 0 0
    
    예상 출력
    1 1 1
    1 1 1
    1 1 1
    
  2. 예제 2

    입력
    7
    0 0 0 1 0 0 0
    0 0 0 0 0 0 1
    0 0 0 0 0 0 0
    0 0 0 0 1 1 0
    1 0 0 0 0 0 0
    0 0 0 0 0 0 1
    0 0 1 0 0 0 0
    
    예상 출력
    1 0 1 1 1 1 1
    0 0 1 0 0 0 1
    0 0 0 0 0 0 0
    1 0 1 1 1 1 1
    1 0 1 1 1 1 1
    0 0 1 0 0 0 1
    0 0 1 0 0 0 0