Pagini recente » Cod sursa (job #1268154) | Cod sursa (job #1584658) | Cod sursa (job #467259) | Cod sursa (job #2461612) | Cod sursa (job #2740541)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, st;
vector<int> G[100001];
int d[100001];
void Citire()
{
int i, j;
fin >> n >> m >> st;
for(int c=0; c<m; c++)
{
fin >> i >> j;
G[i].push_back(j);
}
for(i=1; i<=n; i++)
d[i]=-1;
}
void bfs(int st)
{
queue<int> Q;
int k;
d[st]=0;
Q.push(st);
while(!Q.empty())
{
k=Q.front();
Q.pop();
for(int x : G[k])
if(d[x]==-1)
{
d[x]=d[k]+1;
Q.push(x);
}
}
}
void Afisare()
{
int i;
for(i=1; i<=n; i++)
fout << d[i] << ' ';
}
int main()
{
Citire();
bfs(st);
Afisare();
return 0;
}