Pagini recente » Cod sursa (job #2863529) | Cod sursa (job #2940809) | Cod sursa (job #1513710) | Cod sursa (job #1648449) | Cod sursa (job #2719401)
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
using namespace std;
const string FILENAME = "bfs";
ifstream fin(FILENAME + ".in");
ofstream fout(FILENAME + ".out");
int n, m, s;
bool viz[100001];
int dist[100001];
queue<int> q;
vector<int> adj[100001];
void BFS(int nod)
{
q.push(nod);
viz[nod] = true;
dist[nod] = 0;
while(!q.empty())
{
nod = q.front();
q.pop();
for(int i : adj[nod])
{
if(!viz[i])
{
viz[i] = true;
dist[i] = dist[nod] + 1;
q.push(i);
}
}
}
}
int main()
{
int x, y;
fin >> n >> m >> s;
for(int i = 1; i <= m; i++)
{
fin >> x >> y;
adj[x].pb(y);
}
BFS(s);
for(int i= 1; i <= n; i++)
if(dist[i] == 0 && i != s)
fout << "-1 ";
else fout << dist[i] << " ";
fout << "\n";
fin.close();
fout.close();
return 0;
}