Pagini recente » Cod sursa (job #2483434) | Cod sursa (job #3266340) | Cod sursa (job #2355042) | Cod sursa (job #1888747) | Cod sursa (job #2134519)
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define ll long long
#define pb push_back
#define INF 1000000005
#define LINF 1000000000000000005
#define MAXN 100005
#define pi pair<int,int>
#define pl pair<ll,ll>
int n,m,s,ans[100005];
vector <int> g[100005];
bool v[100005];
queue <int> q;
void BFS(int node){
v[node]=true;
ans[node]=0;
q.push(node);
while (!q.empty()){
int s=q.front();
q.pop();
for (auto i:g[s])
if (v[i]==false){
v[i]=true;
ans[i]=ans[s]+1;
q.push(i);
}
}
}
signed main() {
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin>>n>>m>>s;
for (int i=1;i<=m;i++){
int x,y;
fin>>x>>y;
g[x].pb(y);
}
BFS(s);
for (int i=1;i<=n;i++)
if (ans[i] || i==s) fout<<ans[i]<<' ';
else fout<<-1<<' ';
}