Pagini recente » Cod sursa (job #2497137) | Cod sursa (job #891544) | Cod sursa (job #712141) | Cod sursa (job #1951363) | Cod sursa (job #631924)
Cod sursa(job #631924)
#include<iostream>
#include<vector>
#include<stdio.h>
using namespace std;
vector <int> muchii[100001];
int sel[ 100001];
void bf (const int &nod_sursa, const int &numar_noduri) {
vector<int> coada_bf;
coada_bf.push_back(nod_sursa);
int element_actual = 0;
sel[nod_sursa] = 1;
while (element_actual < coada_bf.size()) {
int nod_actual = coada_bf[element_actual];
int nr_vecini = muchii[nod_actual].size();
for (int j = 0; j < nr_vecini; ++j)
if (sel[muchii[nod_actual][j]] == 0) {
coada_bf.push_back( muchii[nod_actual][j]);
sel[ muchii[nod_actual][j]] = sel[nod_actual] + 1;
}
++element_actual;
}
for (int i = 1; i <= numar_noduri; ++i)
cout<< sel[i] - 1 <<" ";
}
int main() {
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
int numar_noduri, numar_muchii, nod_sursa;
cin>>numar_noduri>>numar_muchii>>nod_sursa;
for (int i = 1; i <= numar_muchii; ++i) {
int sursa, destinatie;
cin>>sursa>>destinatie;
muchii[sursa].push_back(destinatie);
}
bf (nod_sursa, numar_noduri);
return 0;
}