Pagini recente » Cod sursa (job #410418) | Cod sursa (job #1184802) | Cod sursa (job #3162550) | Cod sursa (job #2677876) | Cod sursa (job #2954380)
#include <fstream>
#include <vector>
#include <bitset>
#include <queue>
using namespace std;
bitset<100010> v;
vector<int> L[100010];
queue<int> q;
int D[100010];
int n,m,x,y,st;
void bfs(int nod){
v[nod]=true;
D[nod]=0;
q.push(nod);
while (!q.empty()){
int crt=q.front();
q.pop();
for (auto vec:L[crt]){
if (!v[vec]){
q.push(vec);
D[vec]=D[crt]+1;
v[vec]=true;
}
}
}
}
int main () {
ifstream fin ("bfs.in");
ofstream fout("bfs.out");
fin>>n>>m>>st;
for (int i=1;i<=n;i++){
D[i]=-1;
}
for (int i=1;i<=m;i++){
fin>>x>>y;
L[x].push_back(y);
}
bfs(st);
for (int i=1;i<=n;i++){
fout<<D[i]<<" ";
}
return 0;
}