Cod sursa(job #2425756)

Utilizator samer-valentine.el-abassiSamer Valentine El Abassi samer-valentine.el-abassi Data 25 mai 2019 00:44:30
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <fstream>
#define NMAX 100001
using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> v[NMAX];
queue <int> coada;
int n,m,x,s,i,y1,y2,dist[NMAX],vecin;
void read()
{
    f>>n>>m>>x;
    for (i=0;i<m;i++)
        {f>>y1>>y2;
         v[y1].push_back(y2);
        }
}
void bfs(int start)
{   coada.push(start);

    for (i=1;i<=n;i++)
        dist[i]=-1;
    dist[start]=0;

    while (!coada.empty())
        {int nod=coada.front();
         coada.pop();
         for (i=0;i<v[nod].size();i++)
         {vecin=v[nod][i];
          if (dist[vecin]==-1)
            {
                dist[vecin]=dist[nod]+1;
                coada.push(vecin);

            }

        }
        }

}
void display()
{   for (i=1;i<=n;i++)
    g<<dist[i]<<" ";
}

int main()
{
    read();
    bfs(x);
    display();
    return 0;
}