Cod sursa(job #2229920)

Utilizator butasebiButa Gabriel-Sebastian butasebi Data 8 august 2018 14:00:26
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
int n, m, S, d[100005], i, x, y;
bool viz[100005];
vector <int> v[100005];
queue <int> Q;
void bfs(int x)
{
    Q.push(x);
    d[x] = 0;
    viz[x] = true;
    while(!Q.empty())
    {
        int k = Q.front();
        for(int i = 0;i < v[k].size();i++)
            if(viz[v[k][i]] == false)
            {
                d[v[k][i]] = d[k] + 1;
                Q.push(v[k][i]);
                viz[v[k][i]] = true;
            }
        Q.pop();
    }
}
int main()
{
    ifstream f("bfs.in");
    ofstream g("bfs.out");
    f >> n >> m >> S;
    for(i = 1;i <= m;i++)
    {
        f >> x >> y;
        v[x].push_back(y);
    }
    memset(d, -1, sizeof(d));
    bfs(S);
    for(i = 1;i <= n;i++)
        g << d[i] << " ";
    return 0;
}