Pagini recente » Cod sursa (job #1667897) | Cod sursa (job #1292004) | Cod sursa (job #1279254) | Cod sursa (job #1962391) | Cod sursa (job #1997069)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
string problema = "bfs";
ifstream in(problema+".in");
ofstream out(problema+".out");
int n,m,s;
vector<int> nod[100001];
int dist[100001];
queue<int> toVisit;
int main()
{
in>>n>>m>>s;
for(int i = 1; i<=m;i++)
{
int x,y;
in>>x>>y;
nod[x].push_back(y);
}
for(int i = 1;i<=n;i++)
dist[i]=-1;
toVisit.push(s);
dist[s]=0;
while(!toVisit.empty())
{
for(int node : nod[toVisit.front()])
{
if(dist[node]==-1)
{
dist[node] = dist[toVisit.front()]+1;
toVisit.push(node);
}
}
toVisit.pop();
}
for(int i = 1;i<=n;i++)
{
out<<dist[i]<<' ';
}
return 0;
}