Pagini recente » Cod sursa (job #3266342) | Cod sursa (job #2739707) | Cod sursa (job #2735611) | Cod sursa (job #2384399) | Cod sursa (job #335638)
Cod sursa(job #335638)
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
#define nmax 100001
int N,M,S;
int sol[nmax];
vector <int> V[nmax];
void bf ()
{
queue <int> Q;
Q.push (S); sol[S]=1;
while (!Q.empty())
{
int i = Q.front(); Q.pop();
for (vector<int>::iterator j=V[i].begin(); j<V[i].end(); ++j)
if (!sol[*j])
{
Q.push(*j);
sol[*j] = sol[i]+1;
}
}
}
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;
}