Pagini recente » Cod sursa (job #1637209) | Cod sursa (job #1118809) | Cod sursa (job #2863897) | Cod sursa (job #1033096) | Cod sursa (job #2650979)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
queue <int> Coada;
vector <int>Muchiinod[100005];
int N,M,Nodstart;
int Distanta[100005];
void bfs()
{ while(!Coada.empty())
{ int Nod=Coada.front();
Coada.pop();
for(size_t i=0;i<Muchiinod[Nod].size();i++)
{ int Vecin=Muchiinod[Nod][i];
if(Distanta[Vecin]==-1)
{ Coada.push(Vecin);
Distanta[Vecin]=Distanta[Nod]+1;
}
}
}
}
void citire()
{ in>>N>>M>>Nodstart;
for(int i=1;i<=M;i++)
{ int x,y;
in>>x>>y;
Muchiinod[x].push_back(y);
}
for(int i=1;i<=N;i++)
Distanta[i]=-1;
Distanta[Nodstart]=0;
Coada.push(Nodstart);
bfs();
for(int i=1;i<=N;i++)
out<<Distanta[i]<<' ';
}
int main()
{ citire();
in.close();
out.close();
return 0;
}