//Kruskal最小生成树 publicclassMain { publicstaticvoidmain(String args[]) { int n=in.nextInt(); int m=in.nextInt(); PriorityQueue<int[]> node=newPriorityQueue<>((o1,o2)->(o1[2]-o2[2])); for(int i=1;i<=m;i++) { int u=in.nextInt(); int v=in.nextInt(); int w=in.nextInt(); node.add(newint[] {u,v,w}); }
long res=0; int cnt=0; BCJ bcj=newBCJ(n); while(!node.isEmpty()) { int poll[]=node.poll(); int u=poll[0]; int v=poll[1]; int w=poll[2]; if(bcj.find(u)==bcj.find(v)) continue; bcj.modify(u,v); cnt++; res+=w; } if(cnt==n-1)out.println(res); else out.println("impossible"); out.flush(); }