Pagini recente » Cod sursa (job #2186380) | Cod sursa (job #1433778) | Cod sursa (job #2460931) | Cod sursa (job #2188434) | Cod sursa (job #642466)
Cod sursa(job #642466)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
typedef struct nod* lst; struct nod {int nd; lst next;};
vector<int>vecini[100];
int cost[100];
int viz[100];
int nod,m,n;
void citire(){
int a,b;
f>>n>>m;
for(int i=1;i<=m;i++){
f>>a>>b;
vecini[a].push_back(b);
}
}
void bf(int x){
cost[1]=x;
viz[x]=0;
int el_act=1,ult_el=1,nr;
while(el_act<=ult_el){
nod=cost[el_act];
for(int i=0;i<vecini[nod].size();i++){
nr=vecini[nod][i];
if(viz[nr]==0) cost[++ult_el]=nr,viz[nr]+=1;
}
el_act++;
}
}
void df(int x){
cout<<x<<' ';
viz[x]=1;
for(int i=0;i<vecini[nod].size();i++)
if(viz[x]==0) df(i);
}
int main(){
f>>nod;
citire();
bf(nod);
for(int i=1;i<=n;i++)
if(cost[i]!=n) g<<cost[i]-1<<' ';
else g<<"-1 ";
g<<endl;
return 0;
}