Pagini recente » Cod sursa (job #1835060) | Cod sursa (job #395105) | Cod sursa (job #2402161) | Cod sursa (job #2098173) | Cod sursa (job #829959)
Cod sursa(job #829959)
#include<deque>
#include<fstream>
#include<vector>
using namespace std;
deque < int > q;
int x,y,n,m,s,acum;
vector < int > l[100005];
vector < int > nivel(100005,-1);
int viz[100005];
int main(){
ifstream f("bfs.in"); ofstream g("bfs.out");
f>>n>>m>>s;
q.push_back(s); viz[s]=1; nivel[s]=0;
for(int i=1;i<=m;++i){ f>>x>>y; l[x].push_back(y);}
while(!q.empty()){
acum=q.front(); q.pop_front();
viz[acum]=1;
for(unsigned int i=0; i<l[acum].size(); ++i){
if(viz[ l[acum][i] ]==0){
viz[l[acum][i]]=1;
nivel[l[acum][i]]=nivel[acum]+1;
q.push_back(l[acum][i]);
}
}
}
for(int i=1; i<=n; ++i) g<<nivel[i]<<' ';
return 0;
}