import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int total=0; while(scanner.hasNext()) { String temp=scanner.nextLine(); total=Integer.parseInt(temp); if(total!=0) readData(total,scanner); } } private static void readData(int total, Scanner scanner) { int g[][]=new int[total][total]; for(int i=0;i<total;i++) for(int j=0;j<total;j++) { g[i][j]=1000000; } for(int i=0;i<total*(total-1)/2;i++) { String s=scanner.nextLine(); String buffer[]=s.split(" "); g[Integer.parseInt(buffer[0])-1][Integer.parseInt(buffer[1])-1]=Integer.parseInt(buffer[2]); g[Integer.parseInt(buffer[1])-1][Integer.parseInt(buffer[0])-1]=Integer.parseInt(buffer[2]); } calculateMinRoad(total,g); } private static void calculateMinRoad(int total, int[][] g) { int set[]=new int[total]; int minRoad=0; for(int i=0;i<total;i++) { set[i]=0; } set[0]=1; for(int k=1;k<=total-1;k++) { int min=1000000; int q=0; for(int i=0;i<total;i++) { if(set[i]==1) for(int j=0;j<total;j++) if(set[j]==0) if(g[i][j]<min) { min=g[i][j]; q=j; } } set[q]=1; minRoad+=min; } System.out.println(minRoad); } } /************************************************************** Problem: 2188 User: admin Language: Java Result: Accepted Time:962 ms Memory:60740 kb ****************************************************************/