Pagini recente » Cod sursa (job #2830818) | Cod sursa (job #2384969) | Cod sursa (job #2287279) | Cod sursa (job #2045830) | Cod sursa (job #1878441)
#include<fstream>
#include<queue>
#include<vector>
using namespace std;
int viz[100005];
vector<int> m[100005];
queue<int> q;
void bfs(int x)
{
q.push(x);
viz[x]=1;
while(!q.empty())
{
int nod=q.front();
q.pop();
for(int i=0;i<m[nod].size();++i)
{
if(!viz[m[nod][i]])
{
q.push(m[nod][i]);
viz[m[nod][i]]=viz[nod]+1;
}
}
}
}
int main()
{
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n,M,s;
cin>>n>>M>>s;
for(int i=1;i<=M;++i)
{
int x,y;
cin>>x>>y;
m[x].push_back(y);
}
q.push(s);
bfs(s);
for(int i=1;i<=n;++i)
cout<<viz[i]-1<<" ";
return 0;
}