Pagini recente » Cod sursa (job #1102446) | Cod sursa (job #2103837) | Cod sursa (job #1917157) | Cod sursa (job #1920226) | Cod sursa (job #2449112)
#include<bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
const int NLIM=100005;
int n,m;
vector<int> Muchii[NLIM];
int Distanta[NLIM];
queue <int> Coada;
void BFS()
{
int Nod,Vecin;
while(!Coada.empty())
{
Nod=Coada.front();
Coada.pop();
for(unsigned int i=0;i<Muchii[Nod].size();++i)
{
Vecin=Muchii[Nod][i];
if(Distanta[Vecin]==-1)
Coada.push(Vecin),Distanta[Vecin]=Distanta[Nod]+1;
}
}
}
void Citire()
{
int nodStart;
f>>n>>m>>nodStart;
for(int i=1;i<=m;++i)
{
int x,y;
f>>x>>y;
Muchii[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)
g<<Distanta[i]<<' ';
}
int main()
{
Citire();
return 0;
}