View Code of Problem 3818

import java.util.*;
public class Main {

	public static void main(String[] args){
		// TODO Auto-generated method stub
      Scanner in=new Scanner(System.in);
      while(in.hasNext()) 
      {
    	  int n=in.nextInt();
    	  int m=in.nextInt();
    	  int k=in.nextInt();
    	  int [][]lu=new int[n+1][n+1];
    	  for(int i=0;i<m;i++) 
    	  {
    		  int a=in.nextInt();
    		  int b=in.nextInt();
    		  int l=in.nextInt();
    		  lu[a][b]=l;
    		  lu[b][a]=l;
    	  }
    	  for(int i=0;i<k;i++) 
    	  {
    		  int start=in.nextInt();
    		  int end=in.nextInt();
    		  int min=findway(lu,start,end,0);
    		  System.out.println(min);
    	  }
      }
	}
	public static int findway(int[][]lu,int start,int end,int dis)

	{
		if(start==end) 
		{
			return dis;
		}else {
			int min=Integer.MAX_VALUE;
			for(int i=0;i<lu[start].length;i++) 
			{
				if(lu[start][i]==0) 
				{
					continue;
				}else 
				{
					int r=lu[start][i];
					lu[start][i]=0;
					lu[i][start]=0;
					int d=findway(lu,i,end,dis+r);
					lu[start][i]=r;
					lu[i][start]=r;
					if(d<min) 
					{
						min=d;
					}
				}
			}
			return min;
		}
	}
}

Double click to view unformatted code.


Back to problem 3818