Pagini recente » Cod sursa (job #197577) | Cod sursa (job #2142165) | Cod sursa (job #2538617) | Cod sursa (job #235927) | Cod sursa (job #1077763)
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#define maxn 10000
using std::vector;
int n, m, s, cost[maxn];
vector<int> nod[maxn];
bool viz[maxn];
void bfs(int x, int c)
{
viz[x]=1;
cost[x]=c;
for(int i=0;i<nod[x].size();i++)
{
if(!viz[nod[x][i]])
{
bfs(nod[x][i], c+1);
}
}
}
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
scanf("%d %d %d", &n, &m, &s);
for(int i=0;i<m;i++)
{
int aux1, aux2;
scanf("%d %d", &aux1, &aux2);
nod[aux1].push_back(aux2);
}
for(int i=1;i<=n;i++)
{
cost[i]=-1;
}
bfs(s,0);
for(int i=1;i<=n;i++)
{
printf("%d ", cost[i]);
}
}