Pagini recente » Cod sursa (job #3130507) | Cod sursa (job #131927) | Cod sursa (job #573466) | Cod sursa (job #193465) | Cod sursa (job #252231)
Cod sursa(job #252231)
#include<fstream.h>
#define max 100000
ifstream f("bfs.in");
ofstream g("bfs.out");
long ok,cont,p,val[max],xpr,uz[max],vec[max],n,m,s,i,x,y;
typedef struct nod
{
int info;
nod *urm;
} *pNod;
pNod a[max];
void add(pNod &prim,int val)
{
pNod x;
x=new nod;
x->info=val;
x->urm=prim;
prim=x;
}
int main()
{
f>>n>>m>>s;
for(i=1;i<=m;i++)
f>>x>>y,add(a[x],y);
ok=1;
vec[1]=s;
p=1;
uz[vec[1]]=1;
val[vec[1]]=0;
for(i=1;i<=p;i++)
{
pNod prim=a[vec[i]];
while(prim)
{
if(uz[prim->info]==0)
{
vec[++p]=prim->info;
val[vec[p]]=val[vec[i]]+1;
uz[vec[p]]=1;
}
prim=prim->urm;
}
}
for(i=1;i<=n;i++)
if(val[i]==0&&i!=s) g<<-1<<" ";
else g<<val[i]<<" ";
return 0;
}