/* Author: ACb0y Date: 2010-9-15 Type: MST ProblemId: hdu 1233 还是畅通工程 Result: AC */ #include<iostream> using namespace std; #define inf 999999999 int n, q; int g[110][110]; int vis[110]; int d[110]; void MST_Prim() { int i, j; memset(vis, 0, sizeof(vis)); for (i = 1; i <= n; i++) { d[i] = inf; } d[1] = 0; int ans = 0; for (i = 1; i <= n; i++) { int Min = inf; int pos = -1; for (j = 1; j <= n; j++) if (!vis[j]) { if (d[j] < Min) { Min = d[j]; pos = j; } } vis[pos] = 1; ans += Min; for (j = 1; j <= n; j++) { if (g[pos][j] < d[j]) { d[j] = g[pos][j]; } } } printf("%d/n", ans); } int main() { int i, j; #define ONLINE_JUDGE freopen("1233.txt", "r", stdin); #endif while (scanf("%d", &n) != EOF && n != 0) { for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { g[i][j] = inf; } } q = n * (n - 1) / 2; for (i = 1; i <= q; i++) { int a, b, c; scanf("%d%d%d", &a, &b, &c); if (g[a][b] > c) { g[a][b] = g[b][a] = c; } } MST_Prim(); } return 0; }