Pagini recente » Cod sursa (job #2366237) | Cod sursa (job #2444521) | Cod sursa (job #2510695) | Cod sursa (job #23256) | Cod sursa (job #2534608)
#include <bits/stdc++.h>
using namespace std;
deque <int> G[70010],cost;
void BFS (int start)
{
int i,vf,nod;
deque <int> Q;
Q.push_back(start);
while(!Q.empty())
{
vf=Q.front();
Q.pop_front();
for(i=0;i<=G[vf].size();i++)
{
nod=G[vf][i];
if(cost[nod]==-1)
{
Q.push_back(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);
}
for(i=1;i<=n;i++)
sort(G[i].begin(), G[i].end());
for(i=1;i<=n;i++)
cost[i]=-1;
cost[start]=0;
BFS(start);
for(i=1;i<=n;i++)
g<<cost[i]<<' ';
return 0;
}