Pagini recente » Cod sursa (job #2946060) | Cod sursa (job #282163) | Cod sursa (job #2634622) | Cod sursa (job #901333) | Cod sursa (job #2168600)
#include <fstream>
#include <vector>
#include <queue>
#define N 100005
using namespace std;
ifstream fin ("bfs.in");
ofstream fout("bfs.out");
int dist[N];
vector <int> G[N];
queue <int> Q;
bool viz[N];
int main()
{
int n, m, s;
fin >> n >> m >> s;
for(int i = 1, x, y; i <= m; ++i)
{
fin >> x >> y;
G[x].push_back(y);
}
fin.close();
Q.push(s); viz[s] = 1;
while(!Q.empty())
{
int nod = Q.front();
for(auto i : G[nod])
if(!viz[i])
{
viz[i] = 1;
dist[i] = dist[nod] + 1;
Q.push(i);
}
Q.pop();
}
for(int i = 1; i <= n; ++i)
if(dist[i] == 0 && i != s) fout << "-1 ";
else fout << dist[i] << " ";
fout.close();
return 0;
}