Pagini recente » Rating garvasucmatei (Asgari_Armin123) | Cod sursa (job #2607777) | Cod sursa (job #2221566) | Cod sursa (job #1230372) | Cod sursa (job #2164554)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, S;
int const NLIM = 100005;
vector <int> muchii[NLIM];
queue <int> coada;
int niv[NLIM];
void bfs()
{
int nod, vecin;
while(!coada.empty())
{
nod = coada.front();
coada.pop();
for(unsigned i = 0;i < muchii[nod].size();i++){
vecin = muchii[nod][i];
if(niv[vecin]==-1)
{
coada.push(vecin);
niv[vecin] = niv[nod] + 1;
}
}
}
}
void citire()
{
f>>n>>m>>S;
for(int i = 1;i<=m;i++)
{
int x, y;
f>>x>>y;
muchii[x].push_back(y);
}
for(int i = 1;i <= n;i++)
niv[i] = -1;
niv[S] = 0;
coada.push(S);
}
int main()
{
citire();
bfs();
for(int i = 1;i <= n;i++)
g<<niv[i]<<" ";
}