Pagini recente » Cod sursa (job #2330064) | Cod sursa (job #2822735) | Cod sursa (job #1647456) | Cod sursa (job #2738203) | Cod sursa (job #2690342)
#include <bits/stdc++.h>
#define pb push_back
#define NMAX 100000
using namespace std;
void bfs(int &varf,int &n,vector<vector<int> >&v ){
queue<int>q;
vector<int>drum(NMAX,-1);
drum[varf]=0;
q.push(varf);
while(!q.empty()){
int nod=q.front();
q.pop();
for(auto i:v[nod]){
if(drum[i]==-1){
q.push(i);
drum[q.back()]=drum[nod]+1;
}
}
}
for(int i=1;i<=n;i++)
printf("%d ",drum[i]);
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
int n,m,a;
scanf("%d%d%d",&n,&m,&a);
vector<vector<int> >v(NMAX);
for(int i=1;i<=m;i++){
int x,y;
scanf("%d %d",&x,&y);
v[x].pb(y);
}
bfs(a,n,v);
return 0;
}