Pagini recente » Cod sursa (job #2230480) | Cod sursa (job #100706) | Cod sursa (job #1394420) | Cod sursa (job #1797933) | Cod sursa (job #1323504)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
#define Nmax 100005
vector <int> lista[Nmax], coada;
int N, M, Start;
int ct[Nmax]={0};
int Bfs(int nod)
{
coada.push_back(nod);
ct[nod]=1;
while(!coada.empty())
{
int st=coada.front();
coada.erase(coada.begin());
for(int i=0; i < lista[ st ].size(); i++)
{
if(ct[ lista[ st ][i] ] == 0)
{
coada.push_back( lista[st][i]);
ct[lista[st][i]] = ct[st]+1;
}
}
}
}
int main ()
{
int x, y;
in>>N>>M>>Start;
for(int i=1; i<=M; i++)
{
in>>x>>y;
lista[x].push_back(y);
}
Bfs( Start);
for(int i=1; i<=N; i++)
out<<ct[i]-1<<' ';
return 0;
}