Pagini recente » Cod sursa (job #2232967) | Cod sursa (job #267112) | Cod sursa (job #839388) | Cod sursa (job #878650) | Cod sursa (job #682042)
Cod sursa(job #682042)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("bfs.in");
ofstream fo("bfs.out");
struct graf{
int v,d;
vector<int> next;
graf(){
d=-1;
v=0;
}
};
vector<graf> orientat;
int s;
void bfs(int nod ,int d){
orientat[nod].v=1;
for(int i=0;i<(signed)orientat[nod].next.size();i++){
if(!orientat[orientat[nod].next[i]].v){
orientat[orientat[nod].next[i]].d=d+1;
bfs(orientat[nod].next[i], d+1);
}
}
}
int main(){
int n , m;
fi>>n>>m>>s;
orientat.assign(n,graf());
for(int i=0;i<m;i++){
int x , y;
fi>>x>>y;
orientat[x-1].next.push_back(y-1);
}
bfs(s-1,0);
for(int i=0;i<n;i++)
if(i==s-1)fo<<0<<' ';
else fo<<orientat[i].d<<' ';
}