Pagini recente » Cod sursa (job #166237) | Cod sursa (job #737815) | Cod sursa (job #2756915) | Cod sursa (job #1674342) | Cod sursa (job #1434684)
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> A[10001];
int cost[100001],lungime[100001],i,j,v[1000001],m,n,s,x,y;
void BFS(int nod){
int L=1;
memset(cost,-1,sizeof(cost));
v[L]=nod;
cost[nod]=0;
for (i=1;i<=L;i++)
for (j = 0; j < lungime[v[i]]; j++)
if (cost[A[v[i]][j]]==-1)
{
v[++L] = A[v[i]][j];
cost[v[L]]=cost[v[i]]+1;
}
}
int main()
{f>>n>>m>>s;
for(i=1;i<=m;i++){
f>>x>>y;
A[x].push_back(y);
}
for(i=1;i<=n;i++)
lungime[i]=A[i].size();
BFS(s);
for(i=1;i<=n;i++)
g<<cost[i]<<" ";
return 0;
}