Pagini recente » Cod sursa (job #1448208) | Cod sursa (job #3212559) | Cod sursa (job #702748) | Cod sursa (job #193541) | Cod sursa (job #2289012)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f1("bfs.in");
ofstream f2("bfs.out");
vector<int> G[100005];
int dist[100005];
bool a[100005];
queue<int> nodDeVizit;
int n,m,s;
int main() {
f1>>n>>m>>s;
int x,y;
for(int i=0;i<m;i++){
f1>>x>>y;
G[x].push_back(y);
};
nodDeVizit.push(s);
a[s]=1;
while(!nodDeVizit.empty()){
for(auto i : G[nodDeVizit.front()]){
if(a[i]==0){
nodDeVizit.push(i);
a[i]=1;
dist[i]=dist[nodDeVizit.front()]+1;
}
}
nodDeVizit.pop();
}
for(int i=1;i<=n;i++){
if(dist[i]==0 && i!=s)
f2<< -1 << " ";
else
f2<<dist[i]<<" ";
}
return 0;
}