Pagini recente » Cod sursa (job #1582948) | Cod sursa (job #1207433) | Cod sursa (job #2512232) | Cod sursa (job #1208830) | Cod sursa (job #2384673)
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
vector <int> list[100001];
queue <int> q;
int n, m, s, x, y;
bool visit[100001];
int a[100010];
void bfs(int node)
{
q.push(s);
visit[node] = 1;
a[node] = 1;
while(!q.empty())
{
int t = q.front();
q.pop();
for (int i = 0; i < list[t].size(); i++)
{
if (!visit[list[t][i]])
{
q.push(list[t][i]);
visit[list[t][i]] = 1;
a[list[t][i]] = a[t] + 1;
}
}
}
}
int main ()
{
ifstream cin("bfs.in");
ofstream cout("bfs.out");
cin >> n >> m >> s;
for (int i = 1; i <= m; i++)
{
cin >> x >> y;
list[x].push_back(y);
}
bfs(s);
for (int i = 1; i <= n; i++)
cout << a[i]-1 <<" ";
return 0;
}