fork download
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. class Main
  5. {
  6.  
  7. public static void dfs(int src, List<List<Integer>> adj, int visited[], int parent[] )
  8. {
  9. visited[src]=1;
  10. // parent[src]=0;
  11.  
  12. System.out.print(src+" ");
  13. for(int neighbour: adj.get(src))
  14. {
  15. if(visited[neighbour]==0)
  16. {
  17. parent[neighbour]=src;
  18. dfs(neighbour, adj,visited,parent);
  19. }
  20. }
  21.  
  22. }
  23. public static void main(String[] args)
  24. {
  25. Scanner sc = new Scanner(System.in);
  26. int t = sc.nextInt();
  27.  
  28. while (t-- > 0) {
  29. int n = sc.nextInt();
  30. int e = sc.nextInt();
  31.  
  32. List<List<Integer>> adj=new ArrayList<>();
  33. for(int i=0;i<=n;i++)
  34. adj.add(new ArrayList<>());
  35.  
  36.  
  37. for (int k = 0; k < e; k++) {
  38. int u = sc.nextInt();
  39. int v = sc.nextInt();
  40. adj.get(u).add(v);
  41. adj.get(v).add(u);
  42. }
  43.  
  44. int visited[]=new int[n+1];
  45. int level[]=new int[n+1];
  46. int ways[]=new int[n+1];
  47. int parent[]=new int[n+1];
  48. // parent[source]=0;
  49.  
  50. int source =sc.nextInt();
  51. dfs(source,adj,visited,parent);
  52.  
  53. System.out.println();
  54.  
  55. for(int i=1;i<=n;i++)
  56. System.out.println(i+" "+parent[i]);
  57.  
  58.  
  59. }
  60. }
  61. }
Success #stdin #stdout 0.24s 60840KB
stdin
1
5 5
1 2
1 3
2 4
3 4
4 5
1
stdout
1 2 4 3 5 
1 0
2 1
3 4
4 2
5 4