목차

군사 이동

ps
링크acmicpc.net/…
출처BOJ
문제 번호11085
문제명군사 이동
레벨골드 3
분류

Disjoint Set

시간복잡도O(m*(α(n)+logm))
인풋사이즈n<=1000, m<=50000
사용한 언어Python
제출기록36048KB / 200ms
최고기록144ms
해결날짜2021/10/14

풀이

코드

"""Solution code for "BOJ 11085. 군사 이동".

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

Tags: [DisjointSet]
"""

import sys
from teflib import disjointset


def main():
    p, w = [int(x) for x in sys.stdin.readline().split()]
    c, v = [int(x) for x in sys.stdin.readline().split()]
    dsu = disjointset.DisjointSet(p)
    walkways = []
    for _ in range(w):
        w_start, w_end, w_width = [int(x) for x in sys.stdin.readline().split()]
        walkways.append((w_width, w_start, w_end))
    walkways.sort(reverse=True)
    for w_width, w_start, w_end in walkways:
        dsu.union(w_start, w_end)
        if dsu.find(c) == dsu.find(v):
            print(w_width)
            break


if __name__ == '__main__':
    main()