Pagini recente » Cod sursa (job #433424) | Cod sursa (job #2130801) | Cod sursa (job #1619350) | Cod sursa (job #455632) | Cod sursa (job #636459)
Cod sursa(job #636459)
#include<fstream>
#include<vector>
vector<int> vei[100];
int list[100],li[100],sel[100],el_act,ult_el,nr=0,m=0;
void bf(int x){
int nod;
list[1]=x;
sel[x]=1;
el_act=1;ult_el=1;
li[x]=nr;
while(el_act<=ult_el){
nod=list[el_act];nr++;
for(int i=0;i<vecini[nod].size();i++){m++;
if(!sel[vecini[nod][i]]){
list[++ult_el]=vecini[nod][i];
li[vecini[nod][i]]=nr;
sel[vecini[nod][i]]=1;
}}
if(m==vecini[nod].size()) nr--;
el_act++;
}
}
void init(int n){
for(int i=1;i<=n;i++)
li[i]=-1;
}
int main(){
int nr;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,x,y;
f>>n,m,s;
for(int i=0;i<m;i++){
f>>x>>y;
vecini[x].push_back(y);
}
init(n);
bf(s);
for(int i=1;i<=n;i++){
g<<li[i]<<" ";
}
return 0;
}