Pagini recente » Cod sursa (job #1930874) | Cod sursa (job #1573271) | Cod sursa (job #2267060) | Cod sursa (job #2079303) | Cod sursa (job #2263281)
#include <fstream>
#include<vector>
#include<queue>
#define pb push_back
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
vector<int>v[100001];
bool f[100001];
int c,dist[100001];
void bfs(int nod){
f[nod]=1;
int i;
dist[nod]=0;
queue<int>q;
q.push(nod);
while(q.size()>0){
int elem=q.front();
for(i=0;i<v[elem].size();i++){
if(f[v[elem][i]]==0){
dist[v[elem][i]]=1+dist[elem];
f[v[elem][i]]=1;
q.push(v[elem][i]);
}
}
q.pop();
}
}
int main()
{
int n,m,i,j,s;
cin>>n>>m>>s;
for(i=1;i<=m;i++){
int a,b;
cin>>a>>b;
v[a].pb(b);
}
bfs(s);
for(i=1;i<=n;i++){
if(f[i]==0)
cout<<-1<<" ";
else
cout<<dist[i]<<" ";
}
return 0;
}