Pagini recente » Rating NICK ERMAN (NICKERMAN) | Cod sursa (job #397197) | Cod sursa (job #2766869) | Cod sursa (job #1301804) | Cod sursa (job #2035367)
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
void bfs(int);
vector <int> nod[1000001];
queue<int> q;
int dist[1000001],nodv[1000001];
int main()
{
int n,m,s,i,x,y;
ifstream in("bfs.in");
ofstream out("bfs.out");
in>>n>>m>>s;
for(i = 0; i < m; i++)
{
in>>x>>y;
nod[x].push_back(y);
}
for(i = 1; i <= m; i++)
{
if(i != s)
{
dist[i] = -1;
}
}
q.push(s);
while(!q.empty())
{
nodv[q.front()] = -1;
for(i = 0; i < nod[q.front()].size(); i++)
{
if(dist[nod[q.front()][i]] == -1 )
{
dist[nod[q.front()][i]] = dist[q.front()]+1;
q.push(nod[q.front()][i]);
}
}
q.pop();
}
for(i = 1;i <= n; i++)
{
out<<dist[i]<<" ";
}
}