Pagini recente » Cod sursa (job #3196364) | Cod sursa (job #3194554) | Cod sursa (job #3186218) | Cod sursa (job #2273896) | Cod sursa (job #1301010)
#include<fstream>
#include<iostream>
using namespace std;
long t[10001][10001];
long n,m,s,i,r[100001],x,d[100001];
void a(long p)
{
long j;
bool jo[100001];
for(j=0;j<d[p];j++)
{
if(r[p]+1<r[t[p][j]])
{
r[t[p][j]]=r[p]+1;
jo[j]=1;
}
else jo[j]=0;
}
for(j=0;j<d[p];j++)
if(jo[j])
a(t[p][j]);
}
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(i=1;i<=n;i++)
{
r[i]=100001;
f>>x;
f>>t[x][d[x]++];
}
for(;i<=m;i++)
{
f>>x;
f>>t[x][d[x]++];
}
r[s]=0;
a(s);
for(i=1;i<=n;i++)
if(r[i]==100001)
g<<-1<<" ";
else
g<<r[i]<<" ";
f.close();
g.close();
return 0;
}