Pagini recente » Statistici Simion Alexandru-Marius (almasim95) | Cod sursa (job #1204795) | Cod sursa (job #158440) | Monitorul de evaluare | Cod sursa (job #1992753)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cstdio>
#define ll long long
#define pb push_back
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
const int N = 1e5 + 10;
const int M = 1e6 + 10;
int n, m, s;
vector < int > v[N];
int a[N];
queue < int > q;
int main()
{
fin >> n >> m >> s;
int x, y;
for(int i = 0; i < m; ++i)
{
fin >> x >> y;
v[x].pb(y);
}
for(int i = 1; i <= n; ++i)
a[i] = -1;
a[s] = 0;
q.push(s);
while(q.size())
{
int cnod = q.front();
for(int i = 0; i < v[cnod].size(); ++i)
{
int nnod = v[cnod][i];
if(a[nnod] == -1)
{
a[nnod] = a[cnod]+1;
q.push(nnod);
}
}
q.pop();
}
for(int i = 1; i <= n; ++i)
fout << a[i] << " ";
return 0;
}