Pagini recente » Cod sursa (job #1332142) | Cod sursa (job #1768016) | Cod sursa (job #2642826)
#include<bits/stdc++.h>
#define god dimasi5eks
#pragma GCC optimize("O3")
#define fi first
#define se second
#define pb push_back
#define pf push_front
#define fisier 1
using namespace std;
typedef long long ll;
const int mod = 1000000007;
const double dancila = 3.14159265359; // PI
const double eps = 1e-9;
int n, m, s;
vector<int> v[200002];
int dist[200002];
bool viz[200002];
int main()
{
#ifdef fisier
ifstream cin("bfs.in");
ofstream cout("bfs.out");
#endif
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m >> s;
for(int i = 1; i <= m; ++i)
{
int a, b;
cin >> a >> b;
v[a].pb(b);
}
deque<int> d;
d.pb(s);
viz[s] = 1;
while(!d.empty())
{
int nod = d[0];
d.pop_front();
for(int i = 0; i < v[nod].size(); ++i)
{
int vecin = v[nod][i];
if(!viz[vecin])
{
dist[vecin] = dist[nod] + 1;
viz[vecin] = 1;
d.pb(vecin);
}
}
}
for(int i = 1; i <= n; ++i)
if(!viz[i])
cout << -1 << " ";
else
cout << dist[i] << " ";
return 0;
}