public int dijkstraTry(int s, int n) {
			PriorityQueue<Edge> q = new PriorityQueue<Edge>();
			q.add(new Edge(s, 0));
			int[] d = new int[n];
			System.arraycopy(dis, 0, d, 0, n);
			d[s] = 0;
			while (!q.isEmpty()) {
				Edge cur = q.poll();
				for (int i = 0; i < adj[cur.id].size(); i++) {
					Edge neigh = adj[cur.id].get(i);
					if (d[cur.id] + neigh.w < d[neigh.id]) {
						if (ss.contains(neigh.id))
							d[neigh.id] = 0;
						else
							d[neigh.id] = d[cur.id] + neigh.w;
						q.add(new Edge(neigh.id, d[neigh.id]));
					}
				}
			}
			int max = 0;
			for (int i = 1; i < n; i++)
				max = Math.max(max, d[i]);
			return max;
		}