Pagini recente » Cod sursa (job #1816202) | Cod sursa (job #3226522) | Cod sursa (job #2446967) | Cod sursa (job #2378099) | Cod sursa (job #2202124)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("bfs.in") ;
ofstream g("bfs.out") ;
int a[20001][20001],coada[100001],v[100001],viz[100001] ;
int main()
{
int n,x,y,i,m,nodp,nodc,prim,ultim,k ;
f>>n>>m>>k ;
for(i=1;i<=m;i++)
{
f>>x>>y ;
if(x!=y)a[x][y]=1 ;
}
prim=1 ;
coada[prim]=k ;
ultim=1 ;
viz[k]=1 ;
while(prim<=ultim)
{
nodc=coada[prim] ;
for(i=1;i<=n;i++) if(viz[i]==0&&a[nodc][i]==1)
{
ultim++ ;
coada[ultim]=i ;
viz[i]=1 ;
v[i]=v[coada[prim]]+1 ;
}
prim++ ;
}
for(i=1;i<=n;i++)
if(viz[i]==1) g<<v[i]<<" " ;
else g<<-1<<" " ;
return 0 ;
}