Pagini recente » Cod sursa (job #610136) | Cod sursa (job #1931131) | Cod sursa (job #1882166) | Cod sursa (job #2452232) | Cod sursa (job #864030)
Cod sursa(job #864030)
#include<fstream>
#include<queue>
#include<bitset>
using namespace std;
#define nmax 10001
ifstream fin("bfs.in");
ofstream fout("bfs.out");
queue <int> q;
bitset <nmax> a[nmax];
int n,m,s,x,viz[nmax],i;
void citire()
{
int i,xn,yn;
fin>>n>>m>>s;
for (i=1;i<=m;++i)
{
fin>>xn>>yn;
a[xn][yn]=1;
}
}
void bfs(int z)
{
int i,x;
viz[z]=1;
q.push(z);
while (!q.empty())
{
x=q.front(); q.pop();
for (i=1;i<=n;++i)
{
if (a[x][i]==1 && viz[i]==0)
{
q.push(i);
viz[i]=viz[x]+1;
}
}
}
}
int main()
{
citire();
bfs(s);
for (i=1;i<=n;++i)
fout<<viz[i]-1<<' ';
fout<<'\n';
return 0;
}