사용자 도구

사이트 도구


ps:problems:boj:1738

골목길

ps
링크acmicpc.net/…
출처BOJ
문제 번호1738
문제명골목길
레벨골드 2
분류

SPFA

시간복잡도O(n*m)
인풋사이즈n<=100, m<=20000
사용한 언어Python
제출기록35108KB / 160ms
최고기록160ms
해결날짜2021/09/14

풀이

코드

"""Solution code for "BOJ 1738. 골목길".

- Problem link: https://www.acmicpc.net/problem/1738
- Solution link: http://www.teferi.net/ps/problems/boj/1738

Tags: [SPFA]
"""

import sys
from teflib import tgraph

INF = float('inf')


def main():
    n, m = [int(x) for x in sys.stdin.readline().split()]
    wgraph = [{} for _ in range(n)]
    for _ in range(m):
        u, v, w = [int(x) for x in sys.stdin.readline().split()]
        try:
            cost = min(wgraph[u - 1][v - 1], -w)
        except KeyError:
            cost = -w
        wgraph[u - 1][v - 1] = cost

    prev = [None] * n
    distance = tgraph.spfa(wgraph, 0, prev)[n - 1]
    if distance == -INF:
        print('-1')
    else:
        cur = n - 1
        answer = [cur + 1]
        while (cur := prev[cur]) is not None:
            answer.append(cur + 1)
        print(*reversed(answer))


if __name__ == '__main__':
    main()

토론

댓글을 입력하세요:
H W E Y K
 
ps/problems/boj/1738.txt · 마지막으로 수정됨: 2021/09/23 15:18 저자 teferi