Pagini recente » Cod sursa (job #1546298) | Cod sursa (job #2298910) | Cod sursa (job #1212489) | Cod sursa (job #154459) | Cod sursa (job #2321779)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
int n,m,v[100001],x,y,start;
ifstream in("bfs.in");
ofstream out("bfs.out");
vector<int> graf[100001];
void bfs()
{
queue< int >q;
v[start]=1;
q.push(start);
int p;
while(!q.empty())
{
int nou=q.front();
//out<<nou<<" ";
q.pop();
for(int i = 0; i < graf[nou].size(); i++)
{
p = graf[nou][i];
if( v[p]==0)
{
v[p]=1+v[nou];
q.push(p);
}
}
}
}
int main()
{
in>>n>>m>>start;
for(int i=1; i<=m; i++)
{
in>>x>>y;
//adauga (graf[x],y);
graf[x].push_back(y);
}
bfs();
for(int i=1;i<=n;i++) out<<v[i]-1<<" ";
return 0;
}