import java.util.*; public class Main { public static void main(String[] args) { Scanner in =new Scanner(System.in); while(in.hasNext()) { int n =in.nextInt()-1; int m =in.nextInt(); int[][] road = new int[n+1][n+1]; for(int i =0;i<m;i++) { int a=in.nextInt()-1; int b=in.nextInt()-1; int c=in.nextInt(); road[a][b]=c; road[b][a]=c; } int result=damage(road,n,0,Integer.MAX_VALUE); if(result!=Integer.MIN_VALUE) { System.out.print(result); }else { System.out.print(0); } } } public static int damage(int[][] road,int n,int loc,int d) { if(loc==n) { return d; }else { int max=Integer.MIN_VALUE; for(int i =0;i<road[loc].length;i++) { if(road[loc][i]==0) { continue; }else { int nextd; if(d>road[loc][i]) { nextd=road[loc][i]; }else { nextd=d; } int r=road[loc][i]; road[loc][i]=0; road[i][loc]=0; int findam = damage(road,n,i,nextd); if(findam>max) { max=findam; } road[loc][i]=r; road[i][loc]=r; } } return max; } } } |
Double click to view unformatted code.