Cod sursa(job #2365521)

Utilizator marian013Giugioiu Marian Constantin marian013 Data 4 martie 2019 14:19:15
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#include<vector>
#include<string.h>
using namespace std;
#define maxn 100010
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,o,l,d[maxn],c[maxn],h[maxn];
vector <int> a[maxn];
int bfs(int nod)
{
    int i,j;
    memset(d,-1,sizeof(d));
    d[nod]=0;
    l=1;
    c[l]=nod;
    for(i=1;i<=l;i++)
        for(j=0;j<h[c[i]];j++)
            if(d[a[c[i]][j]]==-1)
        {
            c[++l]=a[c[i]][j];
            d[c[l]]=d[c[i]]+1;
        }
}
int main()
{
    int x,y;
    f>>n>>m>>o;
    for(int i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x].push_back(y);
    }
    for(int i=1;i<=n;i++)
        h[i]=a[i].size();
    bfs(o);
    for(int i=1;i<=n;i++)
        g<<d[i]<<" ";
}