Pagini recente » Cod sursa (job #3126244) | Cod sursa (job #2470077) | Cod sursa (job #1731441) | Cod sursa (job #2805524) | Cod sursa (job #269239)
Cod sursa(job #269239)
#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;
#define NMAX 100100
vector<int> x[NMAX];
queue<int> q;
int a,b,i,j,n,m,k,s,z[NMAX];
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for (i=1;i<=m;++i)
{
scanf("%d%d",&a,&b);
x[a].push_back(b);
}
q.push(k);
z[k]=1;
while (!q.empty())
{
int nod = q.front();
q.pop();
for (i=0;i<(int)x[nod].size();++i)
{
int a = x[nod][i];
if (z[a]==0)
{
z[a]=z[nod]+1;
q.push(a);
}
}
}
for (i=1;i<=n;++i)
printf("%d ",z[i]-1);
}