Pagini recente » Cod sursa (job #2134504) | Cod sursa (job #2428342) | Cod sursa (job #2794612) | Cod sursa (job #583637) | Cod sursa (job #2534653)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
vector <int> G[100001];
queue <int> Q;
int cost[100001];
void BFS (int start)
{
int i,vf,nod;
Q.push(start);
while(!Q.empty())
{
vf=Q.front();
Q.pop();
for(i=0;i<G[vf].size();i++)
{
nod=G[vf][i];
if(!cost[nod])
{
Q.push(nod);
cost[nod]=cost[vf]+1;
}
}
}
}
int main()
{
int n,m,x,y,i,start;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
f>>n>>m>>start;
for(i=1;i<=m;i++)
{
f>>x>>y;
G[x].push_back(y);
}
cost[start]=1;
BFS(start);
for(i=1;i<=n;i++)
g<<cost[i]-1<<' ';
return 0;
}