Pagini recente » Cod sursa (job #3157886) | Cod sursa (job #2419553) | Cod sursa (job #2500228) | Cod sursa (job #1667107) | Cod sursa (job #3219485)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
#define MaxN 100002
vector<int> graph[MaxN];
queue<int> coada;
int dist[MaxN];
void add(int a, int b)
{
graph[a].push_back(b);
}
void bfs(int nod)
{
int q;
coada.push(nod);
dist[nod]=1;
while(!coada.empty())
{
q=coada.front();
for(int i : graph[q])
{
if(dist[i]==0)
{
coada.push(i);
dist[i]=dist[q]+1;
}
}
coada.pop();
}
}
int main()
{
ifstream in("bfs.in");
ofstream out("bfs.out");
int n, m, s, i, j, a, b, cnt=0;
in>>n>>m>>s;
for(i=0; i<m; i++)
{
in>>a>>b;
add(a, b);
}
bfs(s);
for(i=1; i<=n; i++)
{
out<<dist[i]-1<<" ";
}
return 0;
}