Pagini recente » Cod sursa (job #977054) | Cod sursa (job #1304755) | Cod sursa (job #1127947) | Cod sursa (job #844019) | Cod sursa (job #1897039)
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
#define MAX 1000001
fstream fin("bfs.in",ios::in),fout("bfs.out",ios::out);
int n,viz[MAX];
queue<int>C;
vector<int>G[MAX];
void bfs(int nod)
{
int i;
C.push(nod);
viz[nod]=1;
while(C.size())
{
nod=C.front();
C.pop();
for(auto it :G[nod])
{
if(viz[it]==0)
{
C.push(it);
viz[it]=viz[nod]+1;
}
}
}
}
int main()
{
int i,m,x,y,start;
fin>>n>>m>>start;
for(i=1; i<=m; i++)
{
fin>>x>>y;
G[x].push_back(y);
}
bfs(start);
for(i=1;i<=n;i++)
{
cout<<viz[i]-1<<" ";
}
fin.close();
fout.close();
return 0;
}