Pagini recente » Cod sursa (job #3128850) | Cod sursa (job #3228370) | Cod sursa (job #1143447) | Cod sursa (job #2236008) | Cod sursa (job #1211385)
#include <fstream>
#include <iostream>
#include <vector>
#include <cstring>
#define nmax 100001
using namespace std;
vector <int> s[nmax];
int v[nmax],nr[nmax],p[nmax];
ifstream fi("bfs.in");
ofstream fo("bfs.out");
int main(void)
{
int n,m,nod;
fi>>n>>m>>nod;
for(int i=1;i<=m;++i)
{
int x,y;
fi>>x>>y;
s[x].push_back(y);
}
for(int i=1;i<=n;++i)
nr[i]=s[i].size();
memset(v,-1,nmax);
v[nod]++;
long f,g=1;
p[1]=nod;
for (f=1;f<=g;++f)
{
for (int i=0;i<nr[p[f]];++i)
if (v[s[p[f]][i]]==-1)
{
p[++g]=s[p[f]][i];
v[p[g]]=v[p[f]]+1;
}
}
for (int i=1;i<=n;++i)
fo<<v[i]<<" ";
fo<<"\n";
fo.close();
}