Pagini recente » Cod sursa (job #1824156) | Cod sursa (job #1580713) | Cod sursa (job #1619233) | Cod sursa (job #1557830) | Cod sursa (job #1086496)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
int v[100000], m, n, i, start, x, y, primul, element;
vector <int> lista[100005];
queue <int> coada;
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>> n >> m >> start;
for(i=1; i<=m; i++)
{
f>> x >> y;
lista[x].push_back(y);
}
for(i=1; i<=n; i++) v[i]=-1;
coada.push(start);
v[start]=0;
while(!coada.empty())
{
primul=coada.front();
for(i=0; i<lista[primul].size(); i++)
{
element = lista[primul][i];
if(v[element] == -1)
{
v[element] = v[primul] + 1;
coada.push(element);
}
}
coada.pop();
}
for(i=1; i<=n; i++) g << v[i] << " ";
return 0;
}