Pagini recente » Cod sursa (job #470170) | Cod sursa (job #2901940) | Cod sursa (job #1828565) | Cod sursa (job #2355377) | Cod sursa (job #1430771)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
static int [][] adjMat;
static int n;
int m;
static int [] visited;
static int [] dist;
int [][] mat;
public Main(int n, int m){
this.n = n;
this.m = m;
adjMat = new int[n+1][n+1];
visited = new int[n+1];
dist = new int[n+1];
mat = new int[n+1][n+1];
}
static void bfs(int source){
int node;
visited[source] = 1;
Queue<Integer> q = new LinkedList<Integer>();
q.add(source);
while(!q.isEmpty()){
node = q.poll();
visited[node] = 1;
for (int i = 1; i <= n; i++) {
if(adjMat[node][i] !=0 && visited[i]==0){
dist[i] = dist[node] + 1;
q.add(i);
}
}
}
}
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(new FileReader("bfs.in"));
int n =in.nextInt();
int m = in.nextInt();
int source = in.nextInt();
Main main = new Main(n, m);
for (int i = 0; i < m; i++) {
int x,y;
x = in.nextInt();
y = in.nextInt();
adjMat[x][y] = 1;
}
in.close();
bfs(source);
BufferedWriter out = new BufferedWriter(new FileWriter("bfs.out"));
for (int i = 1; i <= n; i++) {
if (visited[i] == 0)
out.append(-1 + " ");
else
out.append(dist[i]+ " ");
}
out.close();
}
}