Pagini recente » Cod sursa (job #5268) | Cod sursa (job #1395339) | Cod sursa (job #1055842) | Cod sursa (job #2361019) | Cod sursa (job #694948)
Cod sursa(job #694948)
#include<fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct {int val,pas;}cd[1000001];
typedef struct nod{int val;
nod *next;};
nod *v[100001],*q;
int main()
{int vector[100001],i,n,m,k,a,b;
fin >> n >> m >> k;
for (i=1;i<=n;++i)
vector[i] = -1;
vector[k] = 0;
for (i=1;i<=m;++i)
{ fin >> a >> b;
q = new nod;
q -> next = v[a];
q -> val = b;
v[a] = q;
}
cd[1].val = k;
cd[1].pas = 0;
int ic=0,sc=1;
while (ic<=sc)
{ ++ic;
q = v[cd[ic].val];
while (q)
{ if (v[q->val])
{ ++sc;
cd[sc].val = q->val;
cd[sc].pas = cd[ic].pas+1;
vector[q->val] = cd[sc].pas;
}
q = q->next;
}
v[cd[ic].val] = NULL;
}
for (i=1;i<=n;++i)
fout << vector[i] << " ";
return 0;
}