Pagini recente » Cod sursa (job #3276693) | Cod sursa (job #896086) | Cod sursa (job #2181992) | Cod sursa (job #741977) | Cod sursa (job #1043394)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
int n,m,s,x,y,a[10000][10000],i,j;
int viz[100000],v[100000];
int main()
{
queue<int> coada;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(i=1;i<=m;i++){
f>>x>>y;
a[x][y]=1;
}
/*for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
{
cout<<a[i][j];
}
cout<<'\n';
}*/
coada.push(s);
if(a[s][s]==1){
v[s]=0;
viz[s]=1;
}
int contor=1;
while(!coada.empty()){
int element=coada.front();
//cout<<element<<" "<<coada.size()<<"m ";
for(i=1;i<=n;i++){
if(a[element][i]>0 && viz[i]==0){
coada.push(i);
viz[i]=viz[element]+1;
v[i]=contor;
}
}
coada.pop();
contor++;
}
cout<<'\n';
for(i=1;i<=n;i++)
if(viz[i]==0)
g<<-1<<" ";
else
g<<viz[i]-1<<" ";
return 0;
}