Mai intai trebuie sa te autentifici.
Cod sursa(job #1393161)
Utilizator | Data | 19 martie 2015 09:46:42 | |
---|---|---|---|
Problema | BFS - Parcurgere in latime | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n,a[10000][10000],d[10000];
void parcurge(int s)
{int x,i,in,sf=in=0,q[10000];
d[s]=1;
q[0]=s;
while(in<=sf)
{x=q[in++];
for(i=1;i<=a[x][0];i++)
if(!d[a[x][i]])
{d[a[x][i]]=d[x]+1;
q[++sf]=a[x][i];
}
}
for(i=1;i<=n;i++)d[i]--;
}
int main()
{int i,s,m,v,b;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
cin>>n>>m>>s;
for(i=1;i<=n;i++)
{fin>>v>>b;
a[v][0]++;
a[v][a[v][0]]=b;
a[b][0]++;
a[b][a[b][0]]=v;
}
parcurge(s);
for(i=1;i<=n;i++)
fout<<d[i]<<' ';
}