Cod sursa(job #2461596)

Utilizator sebastianp2003Popa Sebastian sebastianp2003 Data 25 septembrie 2019 21:07:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
queue<int> q;
int main()
{
    int n, k, t;
    f >> n >> k >> t;
    vector<int> v[n + 1];
    int rez[n + 1];
    memset(rez, 0, sizeof rez);
    for (int a, b; k; k--)
    {
        f >> a >> b;
        if (a != b)
            v[a].push_back(b);
    }
    rez[t] = 1;
    q.push(t);
    while (!q.empty())
    {
        int p = q.front();
        q.pop();
        for (auto i : v[p])
            if (!rez[i])
            {
                rez[i] = rez[p] + 1;
                q.push(i);
            }
    }
    for (int i = 1; i <= n; i++)
        g << rez[i] - 1 << " ";
    return 0;
}