Pagini recente » Cod sursa (job #114895) | Cod sursa (job #2675294) | Cod sursa (job #2429071) | Cod sursa (job #2618566) | Cod sursa (job #2711120)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
const int Nmax=100005;
int n, m, s;
int D[Nmax];
int Viz[Nmax];
vector<int>G[Nmax];
void BFS(int nod)
{
queue<int>Q;
D[nod]=0;
Viz[nod]=1;
Q.push(nod);
while(!Q.empty())
{
int x=Q.front();
Q.pop();
for(auto& i:G[x])
{
if(!Viz[i])
{
D[i]=D[x]+1;
Viz[i]=1;
Q.push(i);
}
}
}
}
int main()
{
fin>>n>>m>>s;
while(m--)
{
int x, y;
fin>>x>>y;
G[x].push_back(y);
}
BFS(s);
for(int i=1; i<=n; i++)
{
if(D[i]==0 && i!=s)
fout<<"-1 ";
else fout<<D[i]<<" ";
}
fout<<'\n';
}