Pagini recente » Cod sursa (job #1259071) | Cod sursa (job #980897) | Cod sursa (job #2687565) | Cod sursa (job #1550589) | Cod sursa (job #1989941)
#include <fstream>
#include <vector>
#include <queue>
#define Nmax 100001
using namespace std;
int viz[Nmax];
vector < int > A[Nmax];
queue < int > Qu;
int n;
void bfs(int x)
{
ofstream fout("bfs.out");
viz[x] = 1;
Qu.push(x);
while (Qu.size())
{
int node = Qu.front();
Qu.pop();
vector <int>::iterator it;
for (it = A[node].begin(); it != A[node].end(); ++it)
if (!viz[*it])
{
viz[*it] = viz[node] + 1;
Qu.push(*it);
}
}
for (int i = 1; i <= n; ++i)
fout<<viz[i] - 1<< " ";
}
int main()
{
int m, a, s, b;
ifstream fin("bfs.in");
fin>>n>>m>>s;
for (int i = 0; i < m; ++i)
{
fin>>a>>b;
A[a].push_back(b);
}
bfs (s);
return 0;
}