Pagini recente » Cod sursa (job #1350164) | Cod sursa (job #3247987) | Cod sursa (job #2303898) | Cod sursa (job #1575175) | Cod sursa (job #851568)
Cod sursa(job #851568)
#include<cstdio>
#include<vector>
using namespace std;
#define nmax 100001
using namespace std;
int viz[nmax],q[nmax];
vector <int> v[100];
int n,m,s;
void read()
{
int i,x,y;
for (i=1;i<=m;++i)
{
scanf("%d %d",&x,&y);
v[x].push_back(y);
}
}
void bfs(int nod)
{
int p=0,u=0; int i;
q[p]=s;
while(p<=u)
{
for (i=0;i<v[q[p]].size();++i)
if (viz[v[q[p]][i]]==0)
{
u++;
viz[v[q[p]]][i]=viz[q[p]]+1;
q[u]=v[q[p]][i];
}
p++;
}
for (i=1;i<=n;++i)
if(viz[i])
printf("%d ",viz[i]);
else
printf("-1 ");
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&n,&m,&s);
read();
int i;
for (i=1;i<=n;++i)
if (s==i)
printf("0 ");
else
bfs(i);
}