View Code of Problem 3833

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.


Back to problem 3833