Pagini recente » Cod sursa (job #768352) | Cod sursa (job #1151962) | Cod sursa (job #98462) | Cod sursa (job #3294109) | Cod sursa (job #632070)
Cod sursa(job #632070)
#include <cstdio>
#define nMax 100100
using namespace std;
int n;
int m;
int k;
int viz[nMax];
int coada[nMax];
int nCoada;
struct nod{
int x;
nod *urm;
}*a[nMax];
void citire()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<m;i++)
{
int x;
int y;
scanf("%d%d",&x,&y);
nod *z;
z=new nod;
z->x=y;
z->urm=a[x];
a[x]=z;
}
}
void bfs()
{
coada[nCoada++]=k;
viz[k]=1;
for(int i=0;i<nCoada;i++)
{
for( nod *j=a[coada[i]];j;j=j->urm)
{
if(!viz[j->x])
{
viz[j->x]=viz[coada[i]]+1;
coada[nCoada++]=j->x;
}
}
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
printf("%d ",viz[i]-1);
}
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
citire();
bfs();
afisare();
return 0;
}