Pagini recente » Cod sursa (job #1509705) | Profil BlocK240 | Cod sursa (job #2547551) | Cod sursa (job #1122457) | Cod sursa (job #2487715)
#include <iostream>
#include <fstream>
#include <bitset>
#define NMAX 100000
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
bitset <NMAX> v[NMAX];
bitset <NMAX> viz,res;
int n;
void bfs(int s,int nr)
{
int t[100],k=0;
for(int i=1;i<=n;++i)
if(v[s][i] && !viz[i])
{
t[k++]=i;
res[i]=nr;
}
for(int i=0;i<k;++i)
bfs(t[i],nr+1);
}
int main()
{
int m,s,k=0,nr=0;
f>>n>>m>>s;
for(int i=1;i<=n;++i)
res[i]=-1;
while(m--)
{
int x,y;
f>>x>>y;
v[x][y]=1;
}
res[s]=0;
viz[s]=1;
bfs(s,1);
for(int i=1;i<=n;++i)
g<<res[i]<<' ';
}