Pagini recente » Cod sursa (job #2283013) | Cod sursa (job #3143868) | Cod sursa (job #1867284) | Cod sursa (job #588033) | Cod sursa (job #1418396)
#include <iostream>
#include <vector>
#include <queue>
#include <cstdio>
#include <stdio.h>
#include <string.h>
#include <fstream>
#define NMax 100001
using namespace std;
ifstream g("bfs.in");
ofstream f("bfs.out");
vector<int> V[NMax];
int d[NMax],N,M,S,a,b;
queue<int> Q;
void Citire()
{
g>>N>>M>>S;
for(int i=0;i<M;i++)
{
g>>a>>b;
V[a].push_back(b);
}
for(int i=1;i<=N;i++)
d[i]=-1;
}
void BFS()
{
Q.push(S);
d[S]=0;
while(!Q.empty())
{
int nod=Q.front();
Q.pop();
for(int i=0;i<V[nod].size();i++)
if(d[V[nod][i]]==-1)
{
d[V[nod][i]]=d[nod]+1;
Q.push(V[nod][i]);
}
}
}
void Afisare()
{
for(int i=1;i<=N;i++)
f<<d[i]<<' ';
}
int main()
{
Citire();
BFS();
Afisare();
}