Cod sursa(job #2825327)

Utilizator adrian1052Stan Adrian Marian adrian1052 Data 4 ianuarie 2022 15:56:38
Problema BFS - Parcurgere in latime Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> v[101];

int viz[100001];
int q[100001];

int main()
{
    int n, m, x;
    fin >> n >> m >> x;
    int a, b;
    for(int i=1;i<=m;i++){
        fin>>a>>b;
        v[a].push_back(b);
    }
    int p =1, u = 1;
   q[p]=x;
   viz[x]=1;

        while(p<=u) {
            int k = q[p];
            p++;
            for(int i=0;i<v[k].size();i++) {
                int nod = v[k][i];
                    if(viz[nod] == 0) {
                        u++;
                        q[u] = nod;
                        viz[nod] = viz[k]+1;
                    }
            }

        }
     for(int i=1;i<=n;i++) {
        fout << viz[i]-1 << " ";
     }
    return 0;
}