JAVA Programming Routing JAVA: The solution time complexity for this lab is an important consideration in grading. Therefore, you should use proper data structure and implement your solutions carefully. Test cases will exercise your programs thoroughly. Your programs should efficiently handle potentially large problems. Expect that your program produces results for all test cases within 4-5 seconds. Part I. Widest Path Routing N  large files (1= N =105), numbered  1…N , are scattered on N distinct storages throughout a network that connects these storages. These storages are also numbered  1…N , such that file  fi  is at storage si . M  links (1= M =105), numbered  1…M , where link  i  bidirectionally connects storage  ai with storage  bi , and has a bandwidth  wi (1= ai, bi = N , ai ? bi ,1= wi =109). Bandwidth wi takes on integer values. At any point in time, two files located at two storages directly connected by a link may simultaneously swap places through the link. That is, the file on storage a can be transferred to storage b and the file on b can be transferred to a using the link that connects a and b . The files must perform such swaps until fi is at storage  i  for 1= i = N . That is, the files must eventually be placed at their “rightful” storage using the network. To reduce the time to accomplish the task of moving files to their rightful storages, you are asked to design and implement an algorithm to maximize the bandwidth of the least wide link which the file transfer must use to move the files to their “rightful” storages speedily. It is guaranteed that it is possible for the files to move to their rightful storages. INPUT FORMAT (file storage.txt): The first line has two integers, N and M . The second line contains the N integers s1 s2 …, sN . It is guaranteed that one storage contains one file. Line i+2 contains the integers ai, bi , and wi where 1= i = M. OUTPUT FORMAT (file storageout.txt): Output one integer number: the maximum minimal bandwidth of a link which a file must use to move itself to its “rightful” storage. If the files are already in their “rightful” storages, then output -1. SAMPLE INPUT 1: 4 4 3 2 1 4 1 2 9 1 3 7 2 3 10 2 4 3 SAMPLE OUTPUT 1: 9 In this example, one can move the files as follows to their rightful storages using links of bandwidth at least 9. File 1 and file 2 swap locations using the 3rd link. File 1 and file 3 swap locations using the 1st link. File 2 and file 3 swap locations using the 3rd link. Output one integer number: the maximum minimal bandwidth of a link which a file must use to move itself to its “rightful” storage SAMPLE INPUT 2: 4 1 1 2 3 4 4 2 13 SAMPLE OUTPUT 2:

Order your essay today and save 10% with the discount code ESSAYHELP