Cod sursa(job #2384838)

Utilizator lulu1602Pantiru Luana Catalina lulu1602 Data 21 martie 2019 11:09:36
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include<vector>
#include<queue>
using namespace std;
int n,m,s,x,y,viz[100001],dis[100001];
vector <int> graf [100001];
queue <int> coada;
void BFS(int x)
{
   coada.push(x);
   viz[x]=1;
   dis[x]=0;
   while(!coada.empty())
   {
       int index=coada.front();
       coada.pop();
       int lim=graf[index].size();
       for(int i=0;i<lim;i++)
       {
           int vecin=graf[index][i];
           if(!viz[vecin])
           {
               coada.push(vecin);
               viz[vecin]=1;
               dis[vecin]=dis[index]+1;
           }
       }
   }
}
int main()
{
    ifstream fin("bfs.in");
    ofstream fout("bfs.out");
    fin>>n>>m>>s;
    for(int i=0;i<m;i++)
    {
        fin>>x>>y;
        graf[x].push_back(y);
    }
    for(int i=1;i<=n;i++)
        dis[i]=-1;
    BFS(s);
    for(int i=1;i<=n;i++)
        fout<<dis[i]<<" ";

    return 0;
}