[백준] 18352번 특정 거리의 도시 찾기
최단경로 찾기 문제
input=sys.stdin.readline 해주지 않으면 2%에서 계속 시간초과가 난다.
import heapq
import sys
input=sys.stdin.readline
INF=int(1e9)
n,m,k,x=map(int,input().split())
graph=[[] for _ in range(n+1)]
distance=[INF]*(n+1)
for i in range(m):
a,b=map(int,input().split())
graph[a].append((b,1))
def dijackstra(start):
q=[]
heapq.heappush(q,(0,start))
distance[start]=0
while q:
dist,now=heapq.heappop(q)
if distance[now]<dist:
continue
for i in graph[now]:
cost=dist+i[1]
if cost<distance[i[0]]:
distance[i[0]]=cost
heapq.heappush(q,(cost,i[0]))
dijackstra(x)
answer=[]
for i in range(n+1):
if distance[i]==k:
answer.append(i)
if answer:
for x in answer:
print(x)
else:
print(-1)
Author And Source
이 문제에 관하여([백준] 18352번 특정 거리의 도시 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@code12/백준-18352번-특정-거리의-도시-찾기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)