Pagini recente » Cod sursa (job #1838155) | Cod sursa (job #1126653) | Cod sursa (job #40191) | Cod sursa (job #2589979) | Cod sursa (job #851551)
Cod sursa(job #851551)
#include<cstdio>
#include<vector>
using namespace std;
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)
{
vector <int> q;
vector <int> l;
vector <int> viz[100];
q.push_back(s);
l.push_back(0);
int p=0,u=0; int i;
while(p<=u)
{
for (i=0;i<v[q[p]].size();++i)
if (viz[q[p]][i]!=1)
{
u++;
viz[q[p]][i]=1;
q.push_back(v[q[p]][i]);
l.push_back(l[p]+1);
if (q[u]==nod) {printf("%d ",l[u]);return;}
}
p++;
}
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);
}