Pagini recente » Cod sursa (job #2363544) | Atasamentele paginii Clasament aqm | Rating Eduard Palade (Eduardip) | Profil PetrescuHoria | Cod sursa (job #1856540)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
struct nod
{
int k,mu[1000];
};
nod n[100001];
int di[100001],nr,m,S,viz[100001],coada[100001],dist[100001];
void citire()
{ int x,y;
f>>nr>>m>>S;
for(int i=1;i<=m;i++)
{
f>>x>>y;
if(x!=y)
{n[x].k++;
n[x].mu[n[x].k]=y;}
}
}
void parcurgere()
{
int u=1,s=1;
viz[S]=1;
coada[u]=S;
dist[S]=1;
int d=1,x=0;
while(u<=s)
{
for(int j=1;j<=n[coada[u]].k;j++)
if(viz[n[coada[u]].mu[j]]==0)
{
s++; coada[s]=n[coada[u]].mu[j];dist[n[coada[u]].mu[j]]=dist[coada[u]]+1;
}
u++;
}
for(int i=1;i<=nr;i++)
g<<dist[i]-1<<" ";
}
int main()
{
citire();parcurgere();
return 0;
}