import java.util.*;
import java.lang.*;
import java.io.*;

// The main method must be in a class named "Main".
class Main {
    static final int INF = -1; 
    static int[] shortestPath(int n, List<List<Integer>> g, int s) {
        Queue<Integer> q = new ArrayDeque<>();
        q.add(s);
        int[] distance = new int[n]; 
        for (int i=0; i<n; i++) {
            distance[i] = INF;
        }
        distance[s] = 0; 

        while (!q.isEmpty()){
            int v = q.poll();

            for (int u: g.get(v)) {
                if (distance[u] == INF) {
                    distance[u] = distance[v] + 1;
                    q.add(u);
                }
            }
        }
        return distance;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt(), m = sc.nextInt(), s = sc.nextInt()-1;
        List<List<Integer>> graph = new ArrayList<List<Integer>>(n);

        for (int i=0; i<n; i++) {
            graph.add(new ArrayList<Integer>());
        }

        for (int i=0; i<m; i++) {
            int a = sc.nextInt() - 1, b = sc.nextInt() -1; 
            graph.get(a).add(b);
            graph.get(b).add(a);
        }

        int[] distance = shortestPath(n, graph, s);

        for (int i = 0; i < n; i++) {
            System.out.println("vector from " + s + " vector to " + (i + 1) + "/ distance is  " + distance[i]);
        }

        sc.close();
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: