Pagini recente » Cod sursa (job #3165681) | Cod sursa (job #3265277) | Cod sursa (job #961365) | Cod sursa (job #1571991) | Cod sursa (job #3159380)
#include <fstream>
#include<vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int>v[1000001];
int a[100001],viz[100001],d[100001];
int main()
{
int n,m,s,x,y,i,o,k;
fin>>n>>m>>s;
for(i=1; i<=m; i++)
{
fin>>x>>y;
v[x].push_back(y);
}
for(i=1; i<=n; i++)
{
d[i]=-1;
}
int st=1;
int dr=1;
a[st]=s;d[s]=0;
viz[a[st]]=1;
while(st<=dr)
{
o=v[a[st]].size();
for(i=0; i<o; i++)
{
k=v[a[st]][i];
if(viz[k]==0){
a[++dr]=k;
viz[k]=1;
d[k]=d[a[st]]+1;
}
}
st++;
}
for(i=1; i<=n; i++)
{
fout<<d[i]<<" ";
}
return 0;
}