Pagini recente » Cod sursa (job #824716) | Cod sursa (job #659001) | Cod sursa (job #886523) | Cod sursa (job #1850790) | Cod sursa (job #592560)
Cod sursa(job #592560)
#include <fstream>
#include <vector>
using namespace std;
const int N=100003;
int v[N],c[N],n;
vector<int> a[N];
ifstream in("bfs.in");
ofstream out("bfs.out");
void bfs(int x)
{
int p=0;
v[x]=0;
c[++c[0]]=x;
while (p<c[0])
{
x=c[++p];
for (vector<int>::iterator i=a[x].begin();i!=a[x].end();i++)
if (v[*i]==-1)
{
c[++c[0]]=*i;
v[*i]=v[x]+1;
}
}
}
int main()
{
int m,S,i,x,y;
in>>n>>m>>S;
while (m--)
{
in>>x>>y;
a[x].push_back(y);
}
for (i=1;i<=n;i++)
v[i]=-1;
bfs(S);
for (i=1;i<=n;i++)
out<<v[i]<<" ";
out<<"\n";
return 0;
}