Pagini recente » Cod sursa (job #2815845) | Cod sursa (job #243818) | Cod sursa (job #2631794) | Cod sursa (job #1257961) | Cod sursa (job #2476398)
#include <fstream>
#include <vector>
using namespace std;
int n,m,s,v1[100001],c[100001];
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int > v[100001];
bool ap[100001];
void BFS()
{
int p=1,u=1;
c[1]=s;
ap[s]=1;
while (p<=u)
{
for (vector <int>::iterator it=v[c[p]].begin();it!=v[c[p]].end();++it)
{
if (ap[*it]==0)
{
ap[*it]=1;
u++;
c[u]=*it;
v1[*it]=v1[c[p]]+1;
}
}
p++;
}
}
int main()
{
int i,a,b;
fin>>n>>m>>s;
for (i=1;i<=m;i++)
{
fin>>a>>b;
v[a].push_back(b);
}
BFS();
for (i=1;i<=n;i++)
{
if (v1[i]!=0)
fout<<v1[i]<<" ";
else
{
if (i==s)
fout<<0<<" ";
else
fout<<-1<<" ";
}
}
return 0;
}