Pagini recente » Cod sursa (job #751612) | Cod sursa (job #809906) | tema | Cod sursa (job #2444243) | Cod sursa (job #2667685)
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
const int maxNr = 100100;
bool viz[maxNr];
int costuri[maxNr];
int main(){
int n,m,start;
vector<int> v[maxNr];
queue<int> q;
ifstream f("bfs.in");
f >> n >> m >> start;
for(int i=0;i<m;i++){
int x,y;
f >> x >> y;
v[x].push_back(y);
}
f.close();
q.push(start);
memset(costuri, -1, sizeof(costuri));
costuri[start]=0;
viz[start]=1;
while(!q.empty()){
int nod = q.front();
q.pop();
for(auto it : v[nod])
if(!viz[it] && costuri[it]==-1){
viz[it]=1;
costuri[it]=costuri[nod]+1;
q.push(it);
}
}
ofstream g("bfs.out");
for(int it=1;it<=n;it++)
g << costuri[it] << ' ';
g.close();
//linux output debug.
cout << '\n';
return 0;
}