Cod sursa(job #2661223)

Utilizator alexia208160Popescu Alexia Maria alexia208160 Data 21 octombrie 2020 16:52:06
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;

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


vector <int> v[100001];
int xx;
int c[100001];


void bfs(int x)
{
    for(int i = 0; i < v[x].size(); i++)
    {
        if(c[v[x][i]] == 0 && v[x][i] != xx)
        {
            c[v[x][i]] = c[x] + 1;
            bfs(v[x][i]);
        }
    }
}


int main()
{
    int n, m, a, b;
    fin >> n >> m >> xx;
    c[xx] = 0;
    for(int i = 0; i < m; i++)
    {
        fin >> a >> b;
        v[a].push_back(b);
    }
    bfs(xx);
    for(int i = 1; i <= n; i++)
    {
        if(c[i] != 0 || i == xx)
            fout << c[i] <<' ';
        else
            fout << -1 <<' ';
    }
    return 0;
}