Pagini recente » Cod sursa (job #3361999) | Cod sursa (job #3361762)
#include <fstream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string>
#include<unordered_map>
#include<map>
#include<climits>
#include<queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
vector<int>bfs(int src,vector<vector<int>>&v){
vector<int>dis(v.size()+1,-1);
queue<int>q;
q.push(src);
dis[src]=0;
while(!q.empty()){
int nod=q.front();
q.pop();
for(int i=0;i<v[nod].size();i++){
int vec=v[nod][i];
if(dis[vec]==-1){
dis[vec]=dis[nod]+1;
q.push(vec);
}
}
}
return dis;
}
int main()
{
int n,m,s;
cin>>n>>m>>s;
vector<vector<int>>v(n+1);
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
v[a].push_back(b);
}
vector<int>dis=bfs(s,v);
for(int i=1;i<=n;i++)cout<<dis[i]<<" ";
cout<<"\n";
return 0;
}