Pagini recente » Cod sursa (job #186763) | Cod sursa (job #359175)
Cod sursa(job #359175)
#include<stdio.h>
#include<vector>
#define MAXN 100001
using namespace std;
vector<int> A[MAXN];
int U[MAXN], C[MAXN], N, M,x,y,s;
void BFS()
{int L,j,i,t,l;
i = L = 1;
C[1] = s;
U[s] = 1;
//l = A[C[i]].size();
for(i = 1; i <= L; i++)
{l = A[C[i]].size();
for(j = 0; j < l; j++)
if(!U[A[C[i]][j]])
{
t = A[C[i]][j];
U[t] = U[C[i]] + 1;
C[++L] = t;
//U[C[L]] = 1;
}
}
}
int main()
{ int i, rez;
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
scanf("%d%d%d", &N, &M, &s);
for(i = 1; i <= M; i++)
{
scanf("%d%d", &x, &y);
A[x].push_back(y);
}
BFS();
for(i = 1; i <= N; i++)
printf("%d ", U[i]-1);
printf("\n");
}