Pagini recente » Cod sursa (job #815589) | Cod sursa (job #748360) | Cod sursa (job #3265460) | Cod sursa (job #909720) | Cod sursa (job #2515240)
#include <bits/stdc++.h>
#define ll long long
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define pb push_back
#define f first
#define sc second
using namespace std;
ll mod=1e9+7,i,j;
ll n,m,root;
vector<ll>nod[100005];
ll dis[100005];
queue<ll>q;
void bfs(ll x){
q.push(x);
while(q.empty()==0){
ll vertex=q.front();
q.pop();
for(unsigned k=0;k<nod[vertex].size();k++){
ll vecin=nod[vertex][k];
if(dis[vecin]==-1){
q.push(vecin);
dis[vecin]=dis[vertex]+1;
}
}
}
}
int main(){
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin>>n>>m>>root;
for(i=1;i<=m;i++){
ll x,y;
fin>>x>>y;
nod[x].pb(y);
}
for(i=1;i<=n;i++) dis[i]=-1;
dis[root]=0;
bfs(root);
for(i=1;i<=n;i++){
fout<<dis[i]<<" ";
}
return 0;
}