解题代码(java):
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
import java.util.Vector;
public class Main {
public static Vector<Integer> []G = new Vector[10010];
public static int []d = new int[10010];
public static boolean [][]edge = new boolean [10010][10010];
public static Stack<Integer> S = new Stack<Integer>();
public static Queue<Integer> q = new LinkedList<Integer>();
static int bfs(int s,int n){
boolean []vis = new boolean[10010];
q.add(s);
vis[s]=true;
while(!q.isEmpty()){
int u=q.remove();
for(int i=0;i<G[u].size();++i){