Cod sursa(job #2376023)

Utilizator ShouldTryAdam Robert Mihai ShouldTry Data 8 martie 2019 13:21:30
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
vector <int > v[100005];
queue <int > coada;
int n, m, p, viz[100005];
void citire()
{fin >> n >> m >> p;
 int x, y;
 for (int i=1;i<=m;i++)
     {fin >> x >> y;
      v[x].push_back(y);
     }
 for (int i=1;i<=n;i++)
      viz[i]=-1;
 viz[p]=0;
 coada.push(p);
}
void bfs()
{int nod, vecin;
 while(!coada.empty())
      {nod=coada.front();
       coada.pop();
       for (int i=0;i<v[nod].size();i++)
            {vecin=v[nod][i];
            if(viz[vecin]==-1)
               {coada.push(vecin);
               viz[vecin]=viz[nod]+1;
               }
            }
      }
}
int main()
{citire();
 bfs();
 for (int i=1;i<=n;i++)
     fout << viz[i] << " ";
    return 0;
}