Pagini recente » Cod sursa (job #1203212) | Cod sursa (job #1224916) | Cod sursa (job #1035756) | Cod sursa (job #438200) | Cod sursa (job #694993)
Cod sursa(job #694993)
#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;
if (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 (vector[q->val] == -1)
{ ++sc;
cd[sc].val = q->val;
cd[sc].pas = cd[ic].pas+1;
vector[q->val] = cd[sc].pas;
}
q = q->next;
}
}
for (i=1;i<=n;++i)
fout << vector[i] << " ";
return 0;
}