Cod sursa(job #2649895)

Utilizator teisanumihai84Mihai Teisanu teisanumihai84 Data 16 septembrie 2020 18:53:03
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 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], f[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;
    f[x]=1;
    while (p<=u)
    {
        nod=c[p];
        for (i=0; i<L[nod].size(); i++)
        {
            vecin=L[nod][i];
            if (f[vecin]==0)
            {
                v[vecin]=v[nod]+1;
                c[++u]=vecin;
                f[vecin]=1;
            }
        }
        p++;
    }
    for (i=1; i<=n; i++)
        if (i!=x && v[i]==0)
            fout<<"-1"<<" ";
        else
            fout<<v[i]<<" ";
}