Pagini recente » Cod sursa (job #1158864) | Autentificare | Cod sursa (job #2299545) | Cod sursa (job #837071) | Cod sursa (job #899437)
Cod sursa(job #899437)
using namespace std;
#include <stdio.h>
#include <vector>
#include <list>
vector <int> lis[100001];
list <int> coada;
void BFS(int nod);
int n, m, freq[100001], start;
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d", &n, &m, &start);
for(int i=1, S, E; i<=m; i++)
{
scanf("%d%d", &S, &E);
lis[S].push_back(E);
}
BFS(start);
for(int i=1;i<=n;i++)
printf("%d ",freq[i]-1);
printf("\n");
}
void BFS(int nod)
{
list <int>::iterator j;
coada.push_back(nod);
freq[nod]=1;
for(j=coada.begin(); j!=coada.end(); j++)
{
for(int i=0; i<lis[*j].size(); i++)
if(freq[lis[*j][i]]==0)
{
freq[lis[*j][i]]=freq[*j]+1;
coada.push_back(lis[*j][i]);
}
}
}