Pagini recente » Cod sursa (job #1264541) | Cod sursa (job #1463162) | Cod sursa (job #715006) | Cod sursa (job #1428180) | Cod sursa (job #2969956)
#include <fstream>
#include <vector>
#include <queue>
const int NMAX=100005;
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void bfs(int);
vector <int> v[NMAX];
queue <int> c;
int d[NMAX];
int n, m, s;
int main()
{
int i, a, b;
fin>>n>>m>>s;
for(i=1; i<=n; i++) d[i]=-1;
for(i=1; i<=m; i++)
{
fin>>a>>b;
v[a].push_back(b);
}
bfs(s);
for(i=1; i<=n; i++) fout<<d[i]<<' ';
fout<<'\n';
return 0;
}
void bfs(int nod)
{
int p;
c.push(nod);
d[nod]=0;
while(!c.empty())
{
p=c.front();
for(auto i:v[p])
{
if(d[i]==-1)
{
d[i]=d[p]+1;
c.push(i);
}
}
c.pop();
}
}