모든 노드 쌍에 관해 경로가 있는 지에 대해 묻고 있으므로, 플로이드워셜 알고리즘을 통해 문제를 풀면 된다.
# 경로 찾기
import sys
input = sys.stdin.readline
N = int(input())
arr = [[0 for j in range(N)] for i in range(N)]
for i in range(N):
arr[i] = list(map(int, input().split()))
for K in range(N):
for S in range(N):
for E in range(N):
if arr[S][E] >= 1: continue
if arr[S][K] + arr[K][E] >= 2:
arr[S][E] = 1
for i in range(N):
for j in range(N):
print(arr[i][j], end=' ')
print()