Pagini recente » Cod sursa (job #2875445) | Istoria paginii runda/mafia_de_pe_infoarena | Istoria paginii runda/dedicatie_speciala | Cod sursa (job #3133856) | Cod sursa (job #2230247)
#include<bits/stdc++.h>
using namespace std;
vector<int> graph[100005];
queue<int> q;
int visited[100005], d[100005];
int n , m , s;
void dfs(int nod){
q.push(nod);
d[nod] = 0 ;
visited[nod] = 1 ;
while(!q.empty()){
int k = q.front();
q.pop();
for(auto it : graph[k]){
if(visited[it] == 0){
q.push(it);
d[it] = d[k] + 1 ;
visited[it] = 1;
}
}
}
}
int main(){
ifstream in("bfs.in");
ofstream out("bfs.out");
in >> n >> m >> s;
for(int i = 0 ; i < m ; i ++ ){
int x , y ;
in >> x >> y ;
graph[x].push_back(y);
}
dfs(s);
for(int i = 1 ; i <= n ; i ++ )
if(d[i] == 0 && i != s)
out << -1 << " ";
else out << d[i]<<" ";
}