Pagini recente » Cod sursa (job #2585530) | Cod sursa (job #2880107) | Cod sursa (job #2917275) | Cod sursa (job #288187) | Cod sursa (job #3275913)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout("bfs.out");
const int var = 101;
vector <int> graf[101];
vector <int> v(var);
vector <bool> f(var);
void BFS(int x,int k)
{
f[x]=1;
for(auto i:graf[x])
{
if(v[i]==0) v[i]=k;
}
for(auto i:graf[x])
{
if(f[i]==0) BFS(i,k+1);
}
}
int main()
{
int n,m,s,x,y;
fin>>n>>m>>s;
for(int i=0;i<m;i++)
{
fin>>x>>y;
graf[x].push_back(y);
}
v[s]=1;
BFS(s,1);
v[s]=0;
for(int i=1;i<=n;i++) if(v[i]>0 || i==s)fout<<v[i]<<' ';
else fout<<-1<<' ';
return 0;
}