Pagini recente » Cod sursa (job #2802550) | Cod sursa (job #1258289) | Cod sursa (job #1040094) | Cod sursa (job #2684990) | Cod sursa (job #2756419)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("bfs.in");
ofstream g ("bfs.out");
int n,m,k;
vector <int> a[100005];
queue <pair <int , int >> Q;
int vecin[100005];
int vizitat[100005];
int cont=0;
void bfs(int nod)
{
vecin[nod]=1;
Q.push({nod , 1});
while(!Q.empty())
{
nod=Q.front().first;
vizitat[nod]=++cont;
for(int x=0;x<a[nod].size();++x)
{
if(vecin[a[nod][x]]==0)
{
vecin[a[nod][x]]=vecin[nod]+1;
Q.push({a[nod][x] , vecin[nod]+1});
}
}
Q.pop();
}
}
int main()
{
f>>n>>m>>k;
for(int i=1;i<=m;++i)
{
int x , y;
f>>x>>y;
a[x].push_back(y);
}
bfs(k);
for(int i=1;i<=n;++i)
g<<vecin[i]-1<<" ";
return 0;
}