Pagini recente » Cod sursa (job #3182342) | Cod sursa (job #387266) | Cod sursa (job #1965507) | Cod sursa (job #2041807) | Cod sursa (job #2864272)
#include<bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m;
vector <int> a[100001];
queue <int> pq;
int niv[100001];
void bfs(int sol)
{int aux,l;
pq.push(sol);
while (!pq.empty()) {aux=pq.front();
pq.pop();
l=a[aux].size();
for (int i=0;i<l;i++) if (niv[a[aux][i]]==0) pq.push(a[aux][i]),niv[a[aux][i]]=niv[aux]+1;
}
}
int main()
{int m,x,sol,y;
f>>n>>m>>sol;
for (int i=1;i<=m;i++) f>>x>>y,a[x].push_back(y);
niv[sol]=1;
bfs(sol);
for (int i=1;i<=n;i++) g<<niv[i]-1<<' ';
}