Cod sursa(job #2513010)

Utilizator hellhathnofuryAilincai Andrei hellhathnofury Data 22 decembrie 2019 11:50:00
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, s, c[100001], d[100001],x,y;
struct Nod{ int info;
            Nod* leg;
          }*L[100001];
void ad(int x, int y)
{
    Nod *p=new Nod;
    p->info=y;
    p->leg=L[x];
    L[x]=p;
}
void bfs(int s)
{   for(int i=1;i<=n;i++) d[i]=-1;
    c[1]=s;
    int st=1,dr=1;
    d[s]=0;
    while(st<=dr) { int x=c[st++];
                    Nod *p;
                    for(p=L[x];p;p=p->leg)
                    {
                        int y=p->info;
                        if(d[y]==-1) {c[++dr]=y;
                                      d[y]=d[x]+1;
                                     }
                    }
    }

}
int main()
{
    f>>n>>m>>s;
    for(int i=1;i<=m;i++) { f>>x>>y;
                            ad(x,y);
                          }
    bfs(s);
    for(int i=1;i<=n;i++) g<<d[i]<<" ";
    return 0;
}