Pagini recente » Cod sursa (job #643441) | Cod sursa (job #15757) | Cod sursa (job #1467106) | Cod sursa (job #123361) | Cod sursa (job #868008)
Cod sursa(job #868008)
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<cstring>
#include<cstdio>
#define NMAX 100000
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
vector <int> v[NMAX];
int n,m,S,viz[NMAX],c[NMAX];
void read()
{
int x,y,i;
in>>n>>m>>S;
for( i=1; i<=m; i++)
{ in>>x>>y;
v[x].push_back(y);
}
}
int main ()
{
int p,k,j,i;
read();
p=k=1;
c[p]=S;
viz[S]=0;
while(p<=k)
{
for(j=0;j<v[c[p]].size();++j)
if(viz[v[c[p]][j]]==0 && v[c[p]][j]!=S )
{
c[++k]=v[c[p]][j];
viz[v[c[p]][j]]=viz[c[p]]+1;
}
p++;
}
for(i=1;i<=n;i++)
if(viz[i]==0 && i!=S)
out<<-1<<" ";
else
out<<viz[i]<<" ";
in.close();
out.close();
return 0;
}