@@ -4,27 +4,28 @@ public class dining {
44 public static int [] dijkstra (Map <Pair , Integer > cost , List <List <Integer >> graph , final int N , int source ) {
55 int [] dist = new int [N ];
66 Set <Integer > visited = new HashSet <>();
7- PriorityQueue <Integer > nodeQueue = new PriorityQueue <>(new Comparator <Integer >() {
7+ /* PriorityQueue<Integer> nodeQueue = new PriorityQueue<>(N, new Comparator<Integer>() {
88 @Override
99 public int compare(Integer arg0, Integer arg1) {
1010 return Integer.compare(dist[arg0], dist[arg1]);
1111 //return 0;
12- }
12+ }*/
1313 });
1414 Arrays .fill (dist , Integer .MAX_VALUE );
1515 dist [N -1 ] = 0 ; // Starting value
16- nodeQueue .add (N -1 );
17- while (visited .size () < N ) {
18- int u = nodeQueue .remove (); // Get next node
19- visited .add (u );
16+ //nodeQueue.add(N-1);
17+ visited .add (N -1 );
18+ while (!visited .isEmpty ()) {
19+ //int u = nodeQueue.remove(); // Get next node
20+ u = visited .first ;
2021 List <Integer > adj = graph .get (u );
2122 for (int node :adj ) {
2223 if (!visited .contains (node )) {
2324 int edgeDist = cost .get (new Pair (u ,node ));
2425 int totalDist = dist [u ] + edgeDist ;
2526 if (totalDist < dist [node ])
2627 dist [node ] = totalDist ;
27- nodeQueue .add (node );
28+ // nodeQueue.add(node);
2829 }
2930 }
3031 }
@@ -38,8 +39,8 @@ public static void main(String[] args) throws IOException {
3839 M = Integer .parseInt (st .nextToken ());
3940 K = Integer .parseInt (st .nextToken ());
4041 final int numOfCows = N - 1 ;
41- List <List <Integer >> graph = new ArrayList <>(N +1 );
42- for (int i = 0 ; i < N +1 ; i ++) {
42+ List <List <Integer >> graph = new ArrayList <>(M +1 );
43+ for (int i = 0 ; i < M +1 ; i ++) {
4344 graph .add (new ArrayList <>());
4445 }
4546 Map <Pair ,Integer > cost = new HashMap <>();
0 commit comments