Pagini recente » Cod sursa (job #1913890) | Cod sursa (job #2268930)
#include <fstream>
using namespace std;
struct nod{int nd; nod *next;};
int ic,sc,coada[100000],s[100000];
nod *L[100000];
void bf()
{
nod *t;
while (ic <= sc)
{
t = L[coada[ic]];
while(t)
{
if(s[t->nd] == -1)
{
sc++;
coada[sc] = t->nd;
s[t->nd] = s[coada[ic]] + 1;
}
t = t -> next;
}
ic++;
}
}
int main()
{
int n,i,j,p,m;
nod *nou;
ifstream f("bfs.in");
f>>n>>m>>p;
for(i=1;i<=n;i++)
{
L[i]=NULL;
s[i]=-1;
}
while(m-- != 0)
{
f >> i >> j;
nou = new nod;
nou -> nd=j;
nou -> next=L[i];
L[i] = nou;
}
ic = sc = 1; coada[sc] = p; s[p] = 0;
bf();
ofstream g("bfs.out");
for(i = 1; i <= n; i++)
g << s[i] << " ";
f.close();
g.close();
}