test/4B.py
2026-07-01 19:46:51 +03:00

32 lines
No EOL
559 B
Python

import sys
data = sys.stdin.read().split()
n = int(data[0])
m = int(data[1])
edges = []
idx = 2
for _ in range(m):
edges.append((int(data[idx+2]), int(data[idx]), int(data[idx+1])))
idx += 3
edges.sort()
p = list(range(n + 1))
def find(i):
r = i
while r != p[r]:
r = p[r]
c = i
while c != r:
p[c], c = r, p[c]
return r
ans = 0
cnt = 0
for w, u, v in edges:
ru = find(u)
rv = find(v)
if ru != rv:
p[ru] = rv
ans += w
cnt += 1
if cnt == n - 1:
break
print(ans)