32 lines
No EOL
559 B
Python
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) |