fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. Scanner sc = new Scanner(System.in);
  14. int n = sc.nextInt();
  15. int e = sc.nextInt();
  16.  
  17. ArrayList<ArrayList<Integer>> graph = new ArrayList<>();
  18. for (int i = 0; i <=n; i++) {
  19. graph.add(new ArrayList<>());
  20. }
  21.  
  22. for (int i = 1; i <= e; i++) {
  23. int u = sc.nextInt();
  24. int v = sc.nextInt();
  25. graph.get(u).add(v);
  26. graph.get(v).add(u);
  27. }
  28.  
  29. // BFS
  30. Queue<Integer> q=new LinkedList<>();
  31. int [] visited = new int [n+1];
  32. int []level=new int [n+5];
  33. level[1]=0;
  34. q.add(1);
  35. visited[1]=1;
  36. while(!q.isEmpty()){
  37. int removed=q.poll();
  38. System.out.println("Node "+removed + " has level "+level[removed]);
  39.  
  40. for(int u : graph.get(removed)){
  41. if(visited[u]==0){
  42. q.add(u);
  43. visited[u]=1;
  44. level[u]=level[removed]+1;
  45. }
  46. }
  47. }
  48. sc.close();
  49. }
  50. }
Success #stdin #stdout 0.17s 60904KB
stdin
10 8
1 2
1 5
1 3
1 4
2 10
6 9
4 6
3 6
stdout
Node 1 has level 0
Node 2 has level 1
Node 5 has level 1
Node 3 has level 1
Node 4 has level 1
Node 10 has level 2
Node 6 has level 2
Node 9 has level 3