Pagini recente » Cod sursa (job #309127) | Cod sursa (job #447605) | Cod sursa (job #310388) | Cod sursa (job #3245143) | Cod sursa (job #2547161)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
const int nMax = 100010;
vector <int> ans;
vector <int> v[nMax];
void bfs(int nod, int length)
{
vector <int> q;
ans[nod] = length++;
for(auto it : v[nod])
{
if(ans[it] == -1)
q.push_back(it);
}
for(auto it : q)
ans[it] = length;
for(auto it : q)
bfs(it, length);
}
int main()
{
int n, m, s; fin >> n >> m >> s; s--;
ans.assign(n, -1);
for(int i=0; i<m; i++)
{
int x, y; fin >> x >> y; x--; y--;
v[x].push_back(y);
}
bfs(s, 0);
for(auto it : ans)
fout << it << " ";
return 0;
}