Pagini recente » Cod sursa (job #1256465) | Cod sursa (job #739081) | Cod sursa (job #1378240) | Cod sursa (job #1863241) | Cod sursa (job #1605653)
#include <fstream>
#include <vector>
#define NMAX 100001
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n,m,i,x,X,y,q[NMAX],t[NMAX],lg[NMAX];
vector<int> v[NMAX];
bool sel[NMAX];
void BF(int x)
{
vector<int>::iterator it;
int p,u,i,nod;
q[1]=x;
sel[x]=true;
t[x]=0;
lg[x]=1;
p=u=1;
while(p<=u)
{
nod=q[p];
for(it=v[nod].begin();it!=v[nod].end();it++)
if(!sel[*it]){
q[++u]=*it;
sel[*it]=true;
lg[*it]=lg[nod]+1;
t[*it]=nod;
}
p++;
}
}
int main()
{
cin>>n>>m>>X;
for(i=1;i<=m;i++)
{
cin>>x>>y;
v[x].push_back(y);
}
BF(X);
for(i=1;i<=n;i++)
cout<<lg[i]-1<<" ";
return 0;
}