Pagini recente » Cod sursa (job #2120475) | Cod sursa (job #1396727) | Cod sursa (job #18089) | Cod sursa (job #431762) | Cod sursa (job #277305)
Cod sursa(job #277305)
#include<fstream.h>
struct nod{ int inf;
nod *leg;
}*L[100000];
int i_c=1,sf_c=1,n,m,q;
int d[100000];
int s[100000],c[100000];
void bf(int nodul)
{
nod *p;
s[nodul]=1;
i_c=sf_c=1;
c[i_c]=nodul;
s[nodul]=1;
d[nodul]=0;
sf_c++;
while(i_c<=sf_c)
{
for(p=L[c[i_c]];p!=NULL;p=p->leg)
if(!s[p->inf])
{
s[p->inf]=1;
c[sf_c]=p->inf;
sf_c++;
d[p->inf]=d[c[i_c]]+1;
}
i_c++;
}
}
int main()
{int i,j,x,y;
nod *p;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>q;
for(i=1;i<=m;i++)
{
f>>x>>y;
if(x!=y){
p=new nod;
p->inf=y;
p->leg=L[x];
L[x]=p;
}
}
for(i=1;i<=n;i++)
d[i]=-1;
bf(q);
for(i=1;i<=n;i++)
g<<d[i]<<" ";
}