Go to diff to previous submission
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.PriorityQueue; import java.util.Scanner; public class Cockchaf { private static class Vrch implements Comparable<Vrch>{ public double d; public Vrchol v; public Vrchol p; public Vrch(double d, Vrchol v, Vrchol p) { this.d = d; this.v = v; this.p = p; } @Override public int compareTo(Vrch o) { } } public static double a2(double a){ return a*a; } private static class Vrchol{ public int x,y,z,p; public List<Vrchol> sused; public Vrchol(int x, int y, int z) { this.x = x; this.y = y; this.z = z; sused = new LinkedList<Vrchol>(); } public double vzdialenost(Vrchol v){ } public boolean equals(Vrchol v) { if(v.x==x && v.y==y && v.z==z){ return true; } else { return false; } } @Override return "[" + x + ","+y+","+z+"] "; } } private static double uhol(Vrchol v1, Vrchol v2, Vrchol v3){ int dx1 = v2.x-v1.x; int dy1 = v2.y-v1.y; int dz1 = v2.z-v1.z; int dx2 = v3.x-v2.x; int dy2 = v3.y-v2.y; int dz2 = v3.z-v2.z; } String line; while(true){ try { line = br.readLine(); Scanner sc = new Scanner(line); int N = sc.nextInt(); int S = sc.nextInt(); int T = sc.nextInt(); List<Vrchol> zoznam = new ArrayList<Vrchol>(); for(int i=0; i<= N; ++i){ line = br.readLine(); sc = new Scanner(line); int x1 = sc.nextInt(); int y1 = sc.nextInt(); int z1 = sc.nextInt(); Vrchol nv1 = new Vrchol(x1, y1, z1); int x2 = sc.nextInt(); int y2 = sc.nextInt(); int z2 = sc.nextInt(); Vrchol nv2 = new Vrchol(x2, y2, z2); boolean jv1 = false, jv2 = false; for(Vrchol v: zoznam){ if(v.equals(nv1)){ nv1 = v; jv1 = true; } if(v.equals(nv2)){ nv2 = v; jv2 = true; } if(jv1 && jv2){ break; } } if(!jv1) zoznam.add(nv1); if(!jv2) zoznam.add(nv2); if(i!=0){ nv1.sused.add(nv2); nv2.sused.add(nv1); } } boolean[] navstivene = new boolean[zoznam.size()]; for(int i=0; i<zoznam.size(); ++i){ zoznam.get(i).p=i; navstivene[i]=false; } Vrch zac = new Vrch(0.0, zoznam.get(0), null); PriorityQueue<Vrch> fronta = new PriorityQueue<Vrch>(); fronta.add(zac); while(!fronta.isEmpty()){ Vrch v = fronta.poll(); //System.out.println(v.v + " " + v.d); if(navstivene[v.v.p]) continue; if(v.v.p==1) { break; } navstivene[v.v.p] = true; for(Vrchol sus: v.v.sused){ double vz = v.d + v.v.vzdialenost(sus)/S; if(v.p!=null) vz += uhol(v.p, v.v, sus)/T; Vrch s = new Vrch(vz, sus, v.v); fronta.add(s); } } //System.out.println(zoznam.size()); e.printStackTrace(); return; } } } }