Pagini recente » Cod sursa (job #1978578) | Cod sursa (job #98243) | Borderou de evaluare (job #2145890) | Cod sursa (job #1127236) | Cod sursa (job #901000)
Cod sursa(job #901000)
#include <cstdio>
#include <vector>
#include <deque>
#include <cstring>
#define pb push_back
using namespace std;
deque <int> q;
vector <int> a[100100];
vector <int>::iterator it;
int d[100100],i,n,m,s,x,y,nod;
int main()
{
freopen ("bfs.in","r",stdin);
freopen ("bfs.out","w",stdout);
scanf ("%d %d %d",&n,&m,&s);
memset (d,-1,sizeof(d));
for (i=1; i<=m; i++)
{
scanf ("%d %d",&x,&y);
a[x].pb(y);
}
d[s] = 0;
q.pb(s);
while (!q.empty())
{
nod = q.front();
q.pop_front();
for (it=a[nod].begin(); it!=a[nod].end(); it++)
{
if (d[*it] == -1)
{
q.pb(*it);
d[*it] = d[nod] + 1;
}
}
}
for (i=1; i<=n; i++) printf ("%d ",d[i]);
printf ("\n");
return 0;
}