Pagini recente » Cod sursa (job #2452028) | Cod sursa (job #622961) | Cod sursa (job #3147496) | Cod sursa (job #2334501) | Cod sursa (job #1048570)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n, m, s, i, x[100001], u, v;
vector<int> a[100001];
void bfs(int s)
{
queue<int> q;
q.push(s);
x[s]=0;
while(!q.empty())
{
for(i=0; i<a[q.front()].size(); i++)
if(x[ a[q.front()][i] ]==-1)
{
q.push(a[q.front()][i]);
x[a[q.front()][i]]=x[q.front()]+1;
}
q.pop();
}
}
int main()
{
cin>>n>>m>>s;
for(i=1; i<=n; i++) x[i]=-1;
for(i=1; i<=m; i++)
{
cin>>u>>v;
a[u].push_back(v);
}
bfs(s);
for(i=1; i<=n; i++) cout<<x[i]<<" ";
return 0;
}