33,027
社区成员




#include<iostream>
using namespace std;
int main()
{
int n,i,j,distance[101][101],lock[101],point,a,b;
while(cin>>n&&n)
{
memset(lock,0,sizeof(lock));
int mintree=0,finded=1,min;
lock[1]=1;
for(i=1;i<=n*(n-1)/2;i++)
{
cin>>a>>b;cin>>distance[a][b];
distance[b][a]=distance[a][b];
}
while(finded!=n)
{
min=100000000;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(lock[i]==1&&lock[j]==0)
if(min>distance[i][j])
{
min=distance[i][j];
point=j;
}
mintree+=min; lock[point]=1;
finded++;
}
cout<<mintree<<endl;
}
return 0;
}