Cod sursa(job #2165582)

Utilizator infomaxInfomax infomax Data 13 martie 2018 12:45:02
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

ifstream F("bfs.in");
ofstream G("bfs.out");

int n, m, start, x, y, d[100005];
vector<int> a[100005];
queue<int> q;

void bfs(int nod){
    q.push(start);
    d[start] = 1;
    while(!q.empty()){
        x = q.front();
        q.pop();
        for(auto it:a[x]){
            if(!d[it]){
                d[it] = d[x]+1;
                q.push(it);
            }
        }
    }
}

int main()
{
    F >> n >> m >> start;
    for(int i = 1; i <= m; ++ i)
        F >> x >> y, a[x].push_back(y);
    bfs(start);
    for(int i = 1; i <= n; ++ i)
        G << d[i]-1 << " ";
    return 0;
}