Pagini recente » Cod sursa (job #2293960) | Cod sursa (job #2540821) | Cod sursa (job #2039278) | Cod sursa (job #2166002) | Cod sursa (job #2256609)
#include <bits/stdc++.h>
#define maxim 100001
using namespace std;
vector <int> graf[maxim];
queue <int> coada;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, s, x, y, cost[maxim];
bool verif[maxim];
int main()
{
fin>>n>>m>>s;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
graf[x].push_back(y);
}
coada.push(s);
verif[s]=1;
while(!coada.empty())
{
int actualNod=coada.front();
coada.pop();
for(int i=0;i<graf[actualNod].size();i++)
{
if(verif[graf[actualNod][i]]==0)
{
verif[graf[actualNod][i]]=1;
cost[graf[actualNod][i]]=cost[actualNod]+1;
coada.push(graf[actualNod][i]);
}
}
}
for(int i=1;i<=n;i++)
{
if(verif[i]==1)
fout<<cost[i]<<" ";
else
fout<<"-1 ";
}
return 0;
}