Pagini recente » Profil Breazs | Cod sursa (job #1036934) | Cod sursa (job #2483870) | Cod sursa (job #1392252) | Cod sursa (job #2667662)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
#define pb push_back
const int NMax = 1e+5;
fstream fin("bfs.in",ios::in),fout("bfs.out",ios::out);
vector<int> adj[NMax];
bool viz[NMax];
int main()
{
int n,m,i,j,p;
fin>>n>>m>>p;
while(m--)
{
fin>>i>>j;
adj[i].pb(j);
}
vector<int> v(n,-1);
queue<int> q;
q.push(p);
viz[p]=true;
v[p]=0;
while(!q.empty())
{
int node=q.front();
q.pop();
for(auto it=adj[node].begin();it!=adj[node].end();++it)
if(!viz[*it])
q.push(*it),
viz[*it]=true,v[*it]=v[node]+1;
}
for(int i=1;i<=n;i++) fout<<v[i]<<' ';
}