Pagini recente » Cod sursa (job #1621448) | Cod sursa (job #2037303)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
vector <int> vec[100010];
ifstream f("bfs.in");
ofstream gg("bfs.out");
int i,j,n,m,s,g[100010],coada[100010],cost[100010];
void BFS(int nod)
{
for (i=1;i<=n;i++) cost[i]=-1;
int lim=1;
coada[lim]=nod;
cost[nod]=0;
for (i=1;i<=lim;i++)
{
for (j=0;j<g[coada[i]];j++)
{
if (cost[vec[coada[i]][j]]==-1) {lim++; coada[lim]=vec[coada[i]][j];cost[coada[lim]]=cost[coada[i]]+1;}
}
}
}
int main()
{
f>>n>>m>>s;
int x,y;
for (i=1;i<=m;i++)
{
f>>x>>y;
vec[x].push_back(y);
}
for (i=1;i<=n;i++) g[i]=vec[i].size();
BFS(s);
for (i=1;i<=n;i++) gg<<cost[i]<<" ";
return 0;
}