Pagini recente » fmi-no-stress-9/solutii | Cod sursa (job #1444989) | Cod sursa (job #3158664) | Cod sursa (job #773024) | Cod sursa (job #1826751)
#include <bits/stdc++.h>
using namespace std;
# define ios ios_base::sync_with_stdio(false);cin.tie(0);
typedef long long ll;
typedef long long int lli;
typedef pair < int, int> dbl;
const int maxInt = 1e9*2;
const lli maxLong = 1e18*2;
int n, m, vertex;
vector <int> adj[100001];
int dist[100001];
bool visited[100001];
queue <int> que;
void BFS(int vertex){
memset(dist, -1, sizeof(dist));
que.push(vertex);
dist[vertex] = 0;
while(!que.empty()){
vertex = que.front();
// cout << vertex << ' ';
que.pop();
visited[vertex] = true;
for(int i = 0; i < adj[vertex].size(); i++)
if(!visited[adj[vertex][i]]){
que.push(adj[vertex][i]);
dist[adj[vertex][i]] = dist[vertex] + 1;
}
}
cout << endl;
}
int main(){
ifstream cin("bfs.in");
ofstream cout("bfs.out");
cin >> n >> m >> vertex;
for(int i = 1; i<= m; i++){
int a,b;
cin >> a >> b;
adj[a].push_back(b);
//adj[b].push_back(a);
}
BFS(vertex);
for(int i = 1; i <= n; i++)
cout << dist[i] << ' ';
return(0);
}