Pagini recente » Cod sursa (job #619559) | Cod sursa (job #3162498) | Cod sursa (job #1951413) | Cod sursa (job #1369636) | Cod sursa (job #2666796)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
list<int> Lista[100002];
int Vector[100002], n, m;
void FunctieBFS(int parm)
{
for(int i = 1; i <= n; i++)
Vector[i] = -1;
Vector[parm] = 0;
queue<int> coada;
coada.push(parm);
while(!coada.empty())
{
int a = coada.front();
coada.pop();
for(int y : Lista[a])
if(Vector[y] == -1)
{
Vector[y] = Vector[a] + 1;
coada.push(y);
}
}
}
int main()
{
int parm, x, y;
in >> n;
in >> m;
in >> parm;
for(int i = 1; i <= m; i++)
{
in >> x;
in >> y;
Lista[x].push_back(y);
}
FunctieBFS(parm);
for(int i = 1; i <= n; i++)
out << Vector[i] << ' ';
}