#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "limits.h"
#include "string.h"
using namespace std;
#define MAX 110
int N;
int dist[MAX][MAX],lowcost[MAX],visit[MAX];
int main()
{
while(
cin>>N && N){
int x,y,z;
for(
int i =
0;i<N*(N-
1)/
2;i++){
cin>>x>>y>>z;
dist[x][y] = dist[y][x] = z;
}
memset(visit,
0,
sizeof(visit));
for(
int i =
2;i<=N;i++)
lowcost[i] = INT_MAX;
int start =
1;
int min_dist =
0;
int count =
1;
int cursor = start;
visit[start] =
1;
while(count<N){
for(
int i =
1;i<=N;i++){
if(!visit[i]){
lowcost[i] = min(lowcost[i],dist[start][i]);
cursor = lowcost[i]<lowcost[cursor]?i:cursor;
}
}
start = cursor;
visit[start] =
1;
count++;
min_dist += lowcost[start];
lowcost[cursor] = INT_MAX;
}
cout<<min_dist<<endl;
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-659443.html