Pagini recente » Cod sursa (job #2964255) | Cod sursa (job #55961) | Cod sursa (job #369311) | Cod sursa (job #930536) | Cod sursa (job #2179084)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
queue <int> Q;
vector <int> v[100001];
int d[100005];
int n, m, s, x, y;
int main()
{
f >> n >> m >> s;
for ( int i = 1 ; i <= m ; i ++ )
{
f >> x >> y;
v[x].push_back(y);
}
Q.push(s);d[s]=1;
while(!Q.empty())
{
int nod=Q.front();
Q.pop();
for ( int i = 0 ; i < v[nod].size() ; i ++ )
{
int ngh=v[nod][i];
if(d[ngh]==0)
{
d[ngh]=d[nod]+1;
Q.push(ngh);
}
}
}
for ( int i = 1 ; i <= n ; i ++ )
g << d[i]-1<<' ';
return 0;
}