Pagini recente » Cod sursa (job #2906485) | Cod sursa (job #205025) | Cod sursa (job #2277753) | Cod sursa (job #1813049) | Cod sursa (job #2225110)
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;
vector <int> a[NMAX];
queue <int> Q;
int n, m ,s ,f[NMAX], i ,x , y , pas ;
int main()
{
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin >> n >> m >> s;
for( i=1 ;i<=m; i++)
{
fin >> x >> y;
a[x].push_back(y);
}
Q.push(s);
pas = 0;
f[s] = 1;
while(!Q.empty())
{
x = Q.front();
pas = f[x] + 1;
for(i=0;i<a[x].size(); i++)
{
if(f[a[x][i]] == 0)f[a[x][i]] = pas , Q.push(a[x][i]);
}
Q.pop();
}
for(i=1;i<=n;i++)
fout<<f[i] - 1 << " ";
return 0;
}