Pagini recente » Cod sursa (job #227861) | Cod sursa (job #2429495) | Cod sursa (job #2919043) | Cod sursa (job #2536201) | Cod sursa (job #2791236)
#include <bits/stdc++.h>
using namespace std;
int n,nodp;
vector<vector<int>>g;
vector<int>d;
queue<int>q;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void read()
{
int x,y,m;
fin>>n>>m>>nodp;
g=vector<vector<int>>(n+1);
d=vector<int>(n+1);
for(int i=1;i<=m;i++)
{
fin>>x>>y;
g[x].push_back(y);
}
}
void BFS(int np)
{
q.push(np);
d[np]=1;
while(!q.empty())
{
np=q.front();
q.pop();
for(auto e:g[np])
if(!d[e])
q.push(e),d[e]=d[np]+1;
}
}
void solve()
{
BFS(nodp);
for(int i=1;i<=n;i++)
if(d[i]==0)
fout<<-1<<' ';
else
fout<<d[i]-1<<' ';
}
int main()
{
read();
solve();
}