Pagini recente » Cod sursa (job #3279896) | Cod sursa (job #2317955) | asd123 | Cod sursa (job #1984265) | Cod sursa (job #335636)
Cod sursa(job #335636)
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
#define nmax 100001
int N,M,S;
vector <int> V[nmax];
int sol[nmax];
int tmp[nmax];
void bf ()
{
int i=0; tmp[i]=S; sol[S]=1;
while (tmp[i])
{
int k=i;
for (int j=0; j<V[tmp[i]].size(); ++j)
{
int x = V[tmp[i]][j];
if (!sol[x])
{
tmp[++k]=x;
sol[x] = sol[tmp[i]]+1;
}
}
i++;
}
}
int main ()
{
freopen ("bfs.in","r",stdin);
freopen ("bfs.out","w",stdout);
cin>>N>>M>>S;
while (M--)
{
int a,b; cin>>a>>b;
V[a].push_back(b);
}
bf();
for (int i=1; i<=N; ++i) cout<<sol[i]-1<<' ';
return 0;
}