Pagini recente » Cod sursa (job #2612065) | Cod sursa (job #1987335) | Cod sursa (job #2588709) | Cod sursa (job #1074004) | Cod sursa (job #3226352)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> l[100005];
int n, m;
int sol[100005];
queue<int> q;
int main()
{
int rad;
fin >> n >> m >> rad;
for (; m--;)
{
int x, y;
fin >> x >> y;
l[x].push_back(y);
l[y].push_back(x);
}
for(int i=1;i<=n;i++)
sol[i]=100000000;
sol[rad]=0;
q.push(rad);
while (!q.empty())
{
int nod = q.front();
q.pop();
for (auto x : l[nod])
{
if (sol[x] < sol[nod] + 1)
{
sol[x] = sol[nod] + 1;
q.push(x);
}
}
}
for(int i=1;i<=n;i++)
{
if(sol[i]==0 && i!=rad)
fout<<-1<<" ";
else fout<<sol[i]<<" ";
}
}