백준 - 18352

developsy·2022년 7월 8일
0

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

from collections import deque
import sys
input = sys.stdin.readline

n, m, k, x = map(int, input().split())
graph = [[] for _ in range(n+1)]
queue = deque([x])
distance = [-1] * (n+1)
for _ in range(m):
    a, b = map(int, input().split())
    graph[a].append(b)
    
distance[x] = 0

while queue:
    current = queue.popleft()
    for q in graph[current]:
        if distance[q] == -1:
            queue.append(q)
            distance[q] = distance[current] + 1

if k in distance:
    for i in range(n+1):
        if distance[i] == k:
            print(i)
else:
    print(-1)
    

전형적인 bfs문제였다. 그런데 대체 왜 실행 시간 초과가 나오는지 한참을 고민하다가 이코테에서 나온 입력을 빠르게 만드는 sys.stdin.readline 를 사용하니 그냥 풀렸다... 걍 다음부터 풀때는 무조건 추가하고 풀어야겠다.

profile
공부 정리용 블로그

0개의 댓글