//hdu_1233
#include <stdio.h>
#include <string.h>
#define INF 0x3f3f3f3f
int n;
int map[101][101];
void init()
{
int i, j;
for(i = 1; i <= n; i ++){
for(j = 1; j <= n; j ++){
map[i][j] = INF;
}
}
}
int prim()
{
int lowcost[101], visited[101];
int minc, i, j;
int res = 0, mnt;
memset(visited, 0, sizeof(visited));
for(i = 1; i <= n; i ++){
lowcost[i] = map[1][i];
}
visited[1] = 1;
for(i = 1; i < n; i ++){
minc = INF;
mnt = -1;
for(j = 1; j <= n; j ++){
if(visited[j] == 0 && minc > lowcost[j]){
minc = lowcost[j];
mnt = j;
}
}
if(mnt == -1)return -1;
res += minc;
visited[mnt] = 1;
for(j = 1; j <= n; j ++){
if(visited[j] == 0 && lowcost[j] > map[mnt][j]){
lowcost[j] = map[mnt][j];
}
}
}
return res;
}
int main()
{
int a, b, p, tn, i;
while(scanf("%d", &n)&&n){
init();
tn = n*(n-1)/2;
for(i = 0; i < tn; i ++){
scanf("%d%d%d", &a, &b, &p);
map[a][b] = map[b][a] = p;
}
printf("%d\n", prim());
}
return 0;
}
http://acm.hdu.edu.cn/showproblem.php?pid=1233
不多说