Pagini recente » Cod sursa (job #2549110) | Cod sursa (job #786230) | Cod sursa (job #2751951) | Cod sursa (job #1257078) | Cod sursa (job #2617599)
//#include "pch.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
using ll = long long int;
fstream f("bfs.in");
ofstream o("bfs.out");
int n, m, k;
vector<int> v[100005];
vector<int> distanta(100005, -1);
int s;
int x, y;
queue<int>coada;
void bfs()
{
int nod, vecin;
while (!coada.empty())
{
int nod = coada.front();
coada.pop();
for (size_t i = 0; i < v[nod].size(); i++)
{
vecin = v[nod][i];
if (distanta[vecin] == -1)
{
coada.push(vecin);
distanta[vecin] = distanta[nod] + 1;
}
}
}
}
int main()
{
f >> n >> m >> s;
for (size_t i = 0; i < m; i++)
{
f >> x >> y;
v[x].push_back(y);
}
distanta[s] = 0;
coada.push(s);
bfs();
for (size_t i = 1; i <= n; i++)
{
o << distanta[i] << " ";
}
}