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 를 사용하니 그냥 풀렸다... 걍 다음부터 풀때는 무조건 추가하고 풀어야겠다.