Pagini recente » Cod sursa (job #283885) | Cod sursa (job #1938469) | Cod sursa (job #2273151) | Cod sursa (job #2837397) | Cod sursa (job #2289014)
#include <iostream>
#include <vector>
#include <bits/stdc++.h>
#include <queue>
#include <bitset>
using namespace std;
vector<int> G[100005];
int n,m,o;
int v[100005];
queue<int> q;
void citire()
{
int aux;
int ind;
scanf("%d %d %d",&n,&m,&o);
for(int i=1;i<=m;i++)
{
scanf("%d %d",&ind,&aux);
G[ind].push_back(aux);
}
}
void parcurgere()
{
q.push(o);
v[o]=1;
while(!q.empty())
{
int aux=q.front();
q.pop();
for(auto i:G[aux])
{
if(!v[i])
{
q.push(i);
v[i]=v[aux]+1;
}
}
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
printf("%d ",v[i]-1);
}
}
using namespace std;
int main()
{
freopen("bfs.in","r",stdin);
citire();
parcurgere();
afisare();
return 0;
}