Cod sursa(job #2256609)

Utilizator TavinciStefanescu Octavian Tavinci Data 8 octombrie 2018 21:14:05
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <bits/stdc++.h>
#define maxim 100001
using namespace std;

    vector <int> graf[maxim];
    queue <int> coada;

    ifstream fin("bfs.in");
    ofstream fout("bfs.out");

    int n, m, s, x, y, cost[maxim];
    bool verif[maxim];
int main()
{
        fin>>n>>m>>s;
        for(int i=1;i<=m;i++)
        {
            fin>>x>>y;
            graf[x].push_back(y);
        }

        coada.push(s);
        verif[s]=1;
        while(!coada.empty())
        {
            int actualNod=coada.front();
            coada.pop();
            for(int i=0;i<graf[actualNod].size();i++)
            {
                if(verif[graf[actualNod][i]]==0)
                {
                    verif[graf[actualNod][i]]=1;
                    cost[graf[actualNod][i]]=cost[actualNod]+1;
                    coada.push(graf[actualNod][i]);
                }
            }
        }
        for(int i=1;i<=n;i++)
        {
            if(verif[i]==1)
                fout<<cost[i]<<" ";
            else
                fout<<"-1 ";
        }
    return 0;
}