[백준] 17835번 면접보는 승범이네

dev-log·2022년 3월 23일
0

범위를 INF=int(1e9)로 설정해줬더니 범위가 모자라서 83퍼센트에서 계속 에러가 났다.
INF=float('inf')로 설정하면 잘 돌아간다.

import heapq
import sys
input=sys.stdin.readline
INF=float('inf')

n,m,k=map(int,input().split())
graph=[[] for _ in range(n+1)]

for i in range(m):
    a,b,c=map(int,input().split())
    graph[b].append((a,c))

place=list(map(int,input().split()))

def dijackstra():
    q=[]
    distance=[INF]*(n+1)
    for x in place:
        heapq.heappush(q,(0,x))
        distance[x]=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]))

    return distance


distance=dijackstra()
distance[0]=0
index,dist=0,0
for i in range(1, n + 1):
    if dist < distance[i]:
        index, dist = i, distance[i]
print(index)
print(dist)
profile
배운 걸 기록하는 곳입니다.

0개의 댓글