Pagini recente » Cod sursa (job #1912665) | Cod sursa (job #2041281) | Cod sursa (job #2628622) | Cod sursa (job #1099816) | Cod sursa (job #374826)
Cod sursa(job #374826)
#include<fstream.h>
int v[1001000][2],t,s,start[101000],i,n,m,x,gasit,nr,c[101000][2],viz[101000],poz[101000],p,u;
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>v[i][0];
v[i][1]=start[x];
start[x]=i;
}
u=0;
p=1;
c[++u][0]=s;
viz[s]=1;
poz[s]=u;
while(p<=u)
{
t=start[c[p][0]];
while(t)
{
if(!viz[v[t][0]])
{
c[++u][0]=v[t][0];
c[u][1]=1+c[p][1];
viz[v[t][0]]=1;
poz[v[t][0]]=u;
}
t=v[t][1];
}
p++;
}
for(i=1;i<=n;i++)
if(!c[poz[i]][0]&&s!=i)
g<<"-1 ";
else
g<<c[poz[i]][1]<<' ';
return 0;
}