Cod sursa(job #2667422)

Utilizator Madalina.ZoicanZoican Alexandra-Madalina Madalina.Zoican Data 3 noiembrie 2020 14:11:52
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;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int N,M,s;
int const n=100001;
vector<int>muchie[n];
int d[n];
queue<int> c;
void BFS()
{
     int nod, vec;
     while(!c.empty())
     {
         nod=c.front();
         c.pop();
         for(unsigned int i=0;i<muchie[nod].size();i++)
         {
             vec=muchie[nod][i];
             if(d[vec]==-1)
             {
                 c.push(vec);
                 d[vec]=d[nod]+1;
             }
         }
     }
}
void read()
{
    fin>>N>>M>>s;
    for(int i=1;i<=M;i++)
    {
        int x,y;
        fin>>x>>y;
        muchie[x].push_back(y);
    }
    for(int i=1;i<=N;i++)
        d[i]=-1;
    d[s]=0;
    c.push(s);
    BFS();
    for(int i=1;i<=N;i++)
        fout<<d[i]<<" ";
}
using namespace std;
int main()
{
    read();
    return 0;
}