Pagini recente » Cod sursa (job #1915780) | Cod sursa (job #2721932) | Cod sursa (job #1572758) | Cod sursa (job #625589) | Cod sursa (job #1996430)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream fi ("bfs.in");
ofstream fo ("bfs.out");
vector <int> v[100006];
queue <int> coada;
int nrnod,nrmuchii,start,nod1,nod2,nod,nextnod,i;
int sol[100006];
int main()
{
fi>>nrnod>>nrmuchii>>start;
for (i=1;i<=nrmuchii;i++)
{
fi>>nod1>>nod2;
v[nod1].push_back(nod2);
}
coada.push(start);
for (i=1;i<=nrnod;i++) sol[i]=-1;
sol[start]=0;
while (!coada.empty())
{
nod=coada.front();
coada.pop();
for (i=0;i<v[nod].size();i++)
{
nextnod=v[nod][i];
if (sol[nextnod]==-1)
{
coada.push(nextnod);
sol[nextnod]=sol[nod]+1;
}
}
}
for (i=1;i<=nrnod;i++) fo<<sol[i]<<' ';
return 0;
}