chldkato

백준 1976 여행 가자 (파이썬) 본문

백준

백준 1976 여행 가자 (파이썬)

chldkato 2020. 2. 28. 13:17

https://www.acmicpc.net/problem/1976

 

1976번: 여행 가자

동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할

www.acmicpc.net

플로이드-와샬로 모든 경로를 구해놓고 여행 경로가 가능한지 출력

import sys

INF = sys.maxsize
input = sys.stdin.readline

n = int(input())
m = int(input())
a = [list(map(int, input().split())) for _ in range(n)]

for k in range(n):
    for i in range(n):
        for j in range(n):
            if i == j:
                a[i][j] = 1
            if a[i][k] and a[k][j]:
                a[i][j] = 1

d = list(map(int, input().split()))
for i in range(len(d)-1):
    if a[d[i]-1][d[i+1]-1] != 1:
        print("NO")
        sys.exit()
print("YES")

Comments