Pagini recente » Cod sursa (job #1580146) | Cod sursa (job #1967050) | Cod sursa (job #223437) | Cod sursa (job #2331119) | Cod sursa (job #2963656)
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
int viz[100005] , dist[100005] , n , m , q , x , y;
vector <int> v[100005];
void parcurgere (int nod)
{
viz[nod] = 1;
for (int i = 0 ; i < v[nod].size () ; i++)
{
int vecin = v[nod][i];
if (dist[vecin] < dist[nod] + 1 && viz[vecin] == 0)
{
dist[vecin] = dist[nod] + 1;
parcurgere (vecin);
}
}
}
int main()
{
f >> n >> m >> q;
for (int i = 1 ; i <= m ; i++)
{
f >> x >> y;
v[x].push_back (y);
}
dist[q] = 0;
parcurgere (q);
for (int i = 1 ; i <= n ; i++)
if (dist[i] == 0 && i != q)
g << -1 << " ";
else
g << dist[i] << " ";
return 0;
}