Pagini recente » Cod sursa (job #2874300) | Cod sursa (job #2374275)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ofstream fo("bfs.out");
ifstream fi("bfs.in");
int dist[100004];
int n,m,start,a,b;
queue <int> coada;
vector<int> vecini[100005];
int viz[100005];
int main()
{
fi>>n>>m>>start;
for(int i=1;i<=m;i++)
{
fi>>a>>b;
vecini[a].push_back(b);
}
for(int i=1;i<=n;i++) dist[i]=-1;
coada.push(start);
viz[start]=true;
dist[start]=0;
while(coada.empty()==false)
{
int Curent=coada.front();coada.pop();
for(auto k:vecini[Curent])
{
if(viz[k]==false)
{
viz[k]=true;
dist[k]=dist[Curent]+1;
coada.push(k);
}
}
}
for(int i=1;i<=n;i++)
fo<<dist[i]<<" ";
fi.close();
fo.close();
return 0;
}