728x90
import sys
from collections import deque
n, m, k, x = map(int, sys.stdin.readline().split())
graph = [ [] for _ in range(n+1) ] #1
for _ in range(m):
a, b = map(int, sys.stdin.readline().split())
graph[a].append(b) #2
visit = [-1]*(n+1) #3
visit[x] = 0 #4
check = False #5
def bfs(v):
q = deque()
q.append(v)
while q:
x = q.popleft()
for nx in graph[x]:
if visit[nx] == -1:
visit[nx] = visit[x] + 1
q.append(nx)
bfs(x) #6
for i in range(1, n+1): #7
if visit[i] == k:
check = True
print(i)
if check == False: #8
print(-1)
#1 : 들어올 입력을 받아줄 리스트 생성
#2 : a노드에서 b노드로 이동할 수 있게 리스트 입력
#3 : 거리를 나타낼 리스트
#4 : 처음위치는 방문처리 및 거리 0으로 갱신
#5 : 원하는 거리의 도시가 없을 경우를 위한 변수 생성
#6 : bfs실행
#7 : visit 인덱스 1번부터 n번까지 하나씩 실행
#8 : 만일 check가 False로 남아있다면 -1 출력
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 18428 파이썬(python) : 감시 피하기 - (★) (0) | 2022.08.17 |
---|---|
[백준] 18405 파이썬(python) : 경쟁적 전염 - (★) (0) | 2022.08.16 |
[백준] 2217 파이썬(python) : 로프 - (★) (0) | 2022.08.16 |
[백준] 4796 파이썬(python) : 캠핑 - (★) (0) | 2022.08.16 |
[백준] 2864 파이썬(python) : 5와 6의 차이 (0) | 2022.08.16 |