Pagini recente » Cod sursa (job #2843239) | Cod sursa (job #2363841) | Cod sursa (job #2804467) | Cod sursa (job #264450) | Cod sursa (job #2555024)
#include <bits/stdc++.h>
using namespace std;
/********************************************/
const int nmax=100004;
vector<int>adj[nmax];
int n,s;
int dist[nmax];
/********************************************/
ifstream f("bfs.in");
ofstream g("bfs.out");
/********************************************/
///------------------------------------------------------------
inline void readInput()
{
int m;
f>>n>>m>>s;
for(int i=1;i<=m;i++)
{
int x,y;
f>>x>>y;
adj[x].push_back(y);
}
for(int i=1;i<=n;i++) dist[i]=-1;
}
///------------------------------------------------------------
void bfs()
{
queue<int>q;
dist[s]=0;
q.push(s);
while(!q.empty())
{
int nod=q.front();
q.pop();
for(vector<int>::iterator it=adj[nod].begin();it!=adj[nod].end();++it)
{
if(dist[*it]== -1)
{
dist[*it]=dist[nod]+1;
q.push(*it);
}
}
}
}
///------------------------------------------------------------
inline void afisare()
{
for(int i=1;i<=n;i++) g<<dist[i]<<" ";
}
///------------------------------------------------------------
int main()
{
readInput();
bfs();
afisare();
return 0;
}