Pagini recente » Cod sursa (job #423740) | Cod sursa (job #1333151) | Cod sursa (job #1978764) | Cod sursa (job #1904930) | Cod sursa (job #3298944)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
map<int,vector<int>>netanyahu;
queue<int>lapid;
map<int,int>v;
int main()
{
int n,m,s;
fin>>n>>m>>s;
int a,b;
for(int i = 0;i<m;i++){
fin>>a>>b;
netanyahu[a].push_back(b);
v[a]=-1;
v[b]=-1;
}
lapid.push(s);
v[s]=0;
int q= 1;
while(!lapid.empty()){
int bezalel=lapid.front();
for(int i =0;i<netanyahu[bezalel].size();i++){
if(v[netanyahu[bezalel][i]]==-1){
v[netanyahu[bezalel][i]]=v[bezalel]+1;
lapid.push(netanyahu[bezalel][i]);
}
}
lapid.pop();
}
std::map<int,int>::iterator it=v.begin();
for(int i = 1;i<=n;i++){
if(v[i]!=0&&i!=s){
fout<<v[i]<<" ";
}
else{
if(i==s){
fout<<v[s]<<" ";
}
else{
fout<<-1<<" ";
}
}
}
return 0;
}