import sys
import heapq
import math
input = sys.stdin.readline
n = int(input())
g = [list(map(float, input().split())) for i in range(n)]
edges = [[] for i in range(n)]
for i in range(n):
for j in range(n):
if i == j:
edges[i].append(0)
else:
edges[i].append(
math.sqrt(pow(g[i][0] - g[j][0], 2) + pow(g[i][1] - g[j][1], 2))
)
d = [0] * n
v = [0] * n
def prim_jarnik(s):
for i in range(n):
d[i] = edges[s][i]
q = []
for i in range(n):
heapq.heappush(q, [d[i], i])
while q:
a, b = heapq.heappop(q)
v[b] = 1
for i in range(n):
if v[i] == 0 and edges[i][b] < d[i]:
d[i] = edges[i][b]
for j in range(len(q)):
if q[j][1] == i:
q[j][0] = edges[i][b]
prim_jarnik(n - 1)
print(round(sum(d), 2))
https://www.acmicpc.net/problem/4386
예제고 반례고 다 해봤는데 다 되는데 틀립니다.... 뭐가 잘못됐는지 모르겟습니다...
그래서 질문이 뭐임? 코드만 띡 던지고
아 누락됐네 맞왜틀임