Pagini recente » Cod sursa (job #725530) | Cod sursa (job #1524348) | Cod sursa (job #351539) | Cod sursa (job #1844355) | Cod sursa (job #1934044)
#include<bits/stdc++.h>
using namespace std;
//ionita
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
struct ndL{
unsigned int nd;
unsigned int len;
};
list<unsigned int> adL[100001];
vector<int> lens(100001,-1);
unsigned int n,m,st;
int main(){
fin >> n >> m >> st;
for(int i = 0 ; i < m; i++){
unsigned int src,dest;
fin>>src>>dest;
adL[src].push_back(dest);
}
queue<ndL> bf;
ndL stN = (ndL){st,0};
lens[st]=0;
bf.push(stN);
for(;!bf.empty();bf.pop())
for(auto it=adL[bf.front().nd].begin(); it!=adL[bf.front().nd].end(); it++)
if(lens[*it]==-1)
bf.push((ndL){*it,bf.front().len+1}),
lens[*it]=bf.front().len+1;
for(int i = 1; i <= n; i++) fout << lens[i] << ' ';
fout << '\n';
return 0;
}