Pagini recente » Cod sursa (job #2234276) | Cod sursa (job #2391833) | Cod sursa (job #1223471) | Cod sursa (job #2468378) | Cod sursa (job #2132013)
#include <bits/stdc++.h> // Grandmixer //
#define ll long long
#define sz size
#define pb push_back
#define er erase
#define in insert
#define fr first
#define sc second
#define mp make_pair
#define pi pair
#define _ ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
#define rc(s) return cout<<s,0
const int mod=1e9+7;
const int inf=1e5;
using namespace std;
int n,m,s,x,y,st,dr,c[100005],b[100005],ans[100005],rs=1,dist[100005];
vector<int>nod[1000005];
int BFS(int s){
st=1; dr=1;
b[1]=s; c[s]=1;
while(st<=dr){
for(int i=0;i<nod[b[st]].size();i++){
if(b[st]==nod[b[st]][i])continue;
if(c[nod[b[st]][i]]==0){
dr++;
b[dr]=nod[b[st]][i];
c[nod[b[st]][i]]=1;
dist[nod[b[st]][i]]=dist[b[st]]+1;
}
}
st++;
}
}
int main(){
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin >> n >> m >> s;
for(int i=1;i<=m;i++){
fin >> x >> y;
nod[x].pb(y);
}
BFS(s);
ans[s]=0;
for(int i=1;i<=n;i++){
if(dist[i]==0 && i!=s) cout<<-1<<" ";
else fout<<dist[i]<<" ";
}
}