Cod sursa(job #2649889)

Utilizator teisanumihai84Mihai Teisanu teisanumihai84 Data 16 septembrie 2020 18:47:05
Problema BFS - Parcurgere in latime Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>
#define dim 100007
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int n, m, x, i, j, nod, vecin, c[dim], p, u, v[dim];
vector <int> L[dim];
int main()
{
    fin>>n>>m>>x;
    for (int t=1; t<=m; t++)
    {
        fin>>i>>j;
        L[i].push_back(j);
    }
    c[1]=x;
    p=u=1;
    while (p<=u)
    {
        nod=c[p];
        for (i=0; i<L[nod].size(); i++)
        {
            vecin=L[nod][i];
            if (v[vecin]==0 && vecin!=x)
            {
                v[vecin]=v[nod]+1;
                c[++u]=vecin;
            }
        }
        p++;
    }
    for (i=1; i<=n; i++)
        if (i!=x && v[i]==0)
            fout<<"-1"<<" ";
        else
            fout<<v[i]<<" ";
}