Pagini recente » Cod sursa (job #1709411) | Cod sursa (job #3163527) | Cod sursa (job #2511455) | Cod sursa (job #2359183) | Cod sursa (job #2485644)
#include <bits/stdc++.h>
#define MOD 1999999973
#define ull unsigned long long
using namespace std;
/*
░▄▀▄▀▀▀▀▄▀▄░░░░░░░░░
░█░░░░░░░░▀▄░░░░░░▄░
█░░▀░░▀░░░░░▀▄▄░░█░█
█░▄░█▀░▄░░░░░░░▀▀░░█
█░░▀▀▀▀░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
░█░░▄▄░░▄▄▄▄░░▄▄░░█░
░█░▄▀█░▄▀░░█░▄▀█░▄▀░
░░▀░░░▀░░░░░▀░░░▀░░░
*/
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> G[100005];
queue<int> bfs;
int viz[100005];
int main()
{
int n,m,S;
int i,x,y,k = 0,vecin;
fin>>n>>m>>S;
for(i = 1; i <= m; i++){
fin>>x>>y;
G[x].push_back(y);
}
bfs.push(S);
while(!bfs.empty()){
for(i = 0; i < G[bfs.front()].size(); i++){
vecin = G[bfs.front()][i];
if(viz[vecin] == 0 && vecin != S){
viz[vecin] = viz[bfs.front()] + 1;
bfs.push(vecin);
}
}
bfs.pop();
}
for(i = 1; i <= n; i++){
if(viz[i] == 0 && i != S){
fout<<"-1 ";
}else{
fout<<viz[i]<<" ";
}
}
return 0;
}