Pagini recente » Cod sursa (job #1128093) | Cod sursa (job #1696117) | Cod sursa (job #2157546) | civilizatie | Cod sursa (job #2079277)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
const int Nmax=100005;
vector<int>L[Nmax];
int n,m,S,dist[Nmax];
queue<int>Q;
bool viz[Nmax];
void BFS()
{
Q.push(S);
viz[S]=true;
while(!Q.empty())
{
int x=Q.front();
Q.pop();
for(auto i:L[x])
if(!viz[i])
{
dist[i]=dist[x]+1;
viz[i]=true;
Q.push(i);
}
}
}
int main()
{
fin>>n>>m>>S;
while(m--)
{
int x,y;
fin>>x>>y;
L[x].push_back(y);
}
BFS();
for(int i=1;i<=n;i++)
if(i!=S && !dist[i])
fout<<"-1 ";
else fout<<dist[i]<<" ";
fin.close();
fout.close();
return 0;
}