Cod sursa(job #2405212)

Utilizator lucianistratiIstrati Lucian lucianistrati Data 14 aprilie 2019 09:44:56
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
int *dist;
int N,M,S,x,y,i;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
void BFS(vector <int> G[],int start)
{

    queue <int> S;
//    viz[start]=1;
   // vector <int> contor;
    S.push(start);
    while(!S.empty())
    {
        int v=S.front();
        S.pop();
        for(i=0;i<G[v].size();i++)
        {
            if(dist[G[v][i]]==-1)
            {
                dist[G[v][i]]=dist[v]+1;
                 S.push(G[v][i]);
            }
        }
    }
    for(i=1;i<=N;i++)
    {
        fout<<dist[i]<<' ';
    }
}
void initializare()
{
    for(i=1;i<=N;i++)
    {
        dist[i]=-1;
    }
    dist[S]=0;
}
int main()
{
    fin>>N>>M>>S;
    vector < int > G[M+1];
    for(i=1;i<=M;i++)
    {
        fin>>x>>y;
        G[x].push_back(y);
    }
    dist=new int[N+1];
    initializare();
    BFS(G,S);
    fin.close();
    fout.close();
    return 0;
}