// Process the input for graph processing public void Process(){ string line = Console.ReadLine().Trim(); int T = Int32.Parse(line); List<Graph> graphs = new List<Graph>(); for(int i=0 ; i < T; i++){ int [] v = Array.ConvertAll(Console.ReadLine().Split(), Int32.Parse); int N = v[0]; int M = v[1]; Graph g = new Graph(N); for(int j=0; j < M; j++){ int []e = Array.ConvertAll(Console.ReadLine().Split(), Int32.Parse); g.AddEdge(e[0], e[1]); } line = Console.ReadLine().Trim(); int s = Int32.Parse(line); g.StartNode = s; g.Process(); graphs.Add(g); } foreach(Graph g in graphs){ g.WriteDistance(); Console.WriteLine(); } }