Cod sursa(job #2157460)

Utilizator IonelChisIonel Chis IonelChis Data 9 martie 2018 17:19:24
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <vector>
#include <queue>

#define Nmax 100002
using namespace std;

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

int n, m, s, i, j, nod, dist[Nmax];
vector <int> G[Nmax];
vector <int> :: iterator it;
queue <int> q;

int main ()
{
    fin >> n >> m >> s;
    while (fin >> i >> j)
    {
        G[i].push_back(j);
        //G[j].push_back(i);
    }
    for (i = 1; i <= n; i ++)
    {
        dist[i] = -1;
    }

    dist[s] = 0;
    q.push(s);

    while (!q.empty())
    {
        nod = q.front();
        q.pop();
        for (it = G[nod].begin(); it != G[nod].end(); it ++)
        {
            if (dist[*it] == -1)
            {
                dist[*it] = dist[nod] + 1;
                q.push(*it);
            }
        }
    }
    for (i = 1; i <= n; i ++)
    {
        fout << dist[i] << " ";
    }

    fin.close();
    fout.close();
    return 0;
}