Pagini recente » Cod sursa (job #519264) | Cod sursa (job #860576) | Cod sursa (job #1911590) | Cod sursa (job #3179284) | Cod sursa (job #1833783)
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,c,lista[1000001],urm[1000001],inc[100001],sf;
int stiva[100001],adc[100001];
bool vf[100001];
int main()
{
f>>n>>m>>c;
int x,y;
for(int i=1;i<=m;i++)
{
f>>x>>y;
lista[++sf]=y;
urm[sf]=inc[x];
inc[x]=sf;
}
int inc2=1,sf=1;
stiva[1]=c;
adc[c]=1;
vf[c]=true;
while(inc2<=sf)
{
for(int i=inc[stiva[inc2]];i;i=urm[i])
if(!vf[lista[i]])
{
vf[lista[i]]=true;
stiva[++sf]=lista[i];
adc[stiva[sf]]=adc[stiva[inc2]]+1;
}
inc2++;
}
for(int i=1;i<=n;i++)
g<<adc[i]-1<<" ";
return 0;
}