Cod sursa(job #2283779)

Utilizator Andreea_1009Cimpean Andreea Andreea_1009 Data 15 noiembrie 2018 21:21:30
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 f("bfs.in");
ofstream g("bfs.out");

int n,m,start,viz[100005];

vector <int> G[100005];
queue <int> Coada;

void parcurgere_latime(int nod)
{
    viz[nod]=0;
    Coada.push(nod);
    while(!Coada.empty())
    {
        int nod_curent=Coada.front();
        Coada.pop();
        for(int i=0;i<G[nod_curent].size();++i)
        {
            if(viz[G[nod_curent][i]]==-1)
            {
                viz[G[nod_curent][i]]=viz[nod_curent]+1;
                Coada.push(G[nod_curent][i]);
            }
        }
    }

}

int main()
{
    f>>n>>m>>start;
    for(int i=1;i<=m;++i)
    {
        int x,y;
        f>>x>>y;
        G[x].push_back(y);
    }
    for(int i=1;i<=n;++i)
        viz[i]=-1;
    parcurgere_latime(start);
    for(int i=1;i<=n;++i)
        g<<viz[i]<<' ';
    return 0;
}