#include<stdio.h> #include<math.h> #include<stdlib.h> int m,n,f[100]; struct mapy { int x,y,len; }map[5000]; int cmp(const void *a,const void *b) { return (*(struct mapy *)a).len-(*(struct mapy *)b).len; } int find(int a) { if(a!=f[a]) f[a]=find(f[a]); return f[a]; } void dj() { int i,num,sum; for(i=0;i<100;i++) f[i]=i; qsort(map,m,sizeof(map[0]),cmp); sum=0;num=0; for(i=0;i<m;i++) { if(find(map[i].x)!=find(map[i].y)) { sum=sum+map[i].len; f[find(map[i].x)]=find(map[i].y); num++; } if(num==n-1) break; } printf("%d\n",sum); } int main() { while(scanf("%d",&n),n) { for(m=0;m<n*(n-1)/2;m++) scanf("%d%d%d",&map[m].x,&map[m].y,&map[m].len); dj(); } return 0; }