1 #include<stdio.h>
2 #include<string.h>
3 #include<algorithm>
4 using namespace std;
5
6 typedef struct
7 {
8 int start;
9 int end;
10 int cost;
11 }Ege;
12 Ege s[10001];
13 int fa[1001];
14 int cmp(Ege a,Ege b)
15 {
16 return a.cost<b.cost;
17 }
18 int get_father(int n)
19 {
20 if(fa[n]==n)
21 return n;
22 else
23 {
24 fa[n]=get_father(fa[n]);
25 return fa[n];
26 }
27
28 }
29 int main()
30 {
31 int m,n;
32 while(scanf("%d%d",&n,&m)!=EOF)
33 {
34 int i,j;
35 for(i=1;i<=n;++i)
36 fa[i]=i;
37 for(i=1;i<=m;++i)
38 scanf("%d%d%d",&s[i].start,&s[i].end,&s[i].cost);
39 sort(s+1,s+m+1,cmp);
40 int count=0,num=0;
41 for(i=1;i<=m&&n>1;++i)
42 {
43 int f_a=get_father(s[i].start),f_b=get_father(s[i].end);
44 if(f_a!=f_b)
45 {
46 fa[f_b]=f_a;
47 count+=s[i].cost;
48 --n;
49 }
50 }
51 if(n==1)
52 printf("%d\n",count);
53 else
54 printf("no\n");
55
56 }
57 return 0;
58 }