Cod sursa(job #2835646)

Utilizator LeonGSLeo Jechiu LeonGS Data 19 ianuarie 2022 00:50:09
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

int n, m, s;
int dist[100005];
vector<int> adj[100005];
bool visited[100005] = {false};
queue <int> q;

void bfs(int x){
   visited[x] = 1;
   q.push(x);
   while(!q.empty()){
    int nod = q.front();
    q.pop();
    for(int i=0; i<adj[nod].size(); i++){
        int vecin = adj[nod][i];
        if(!visited[vecin]){
            visited[vecin]=1;
            q.push(vecin);
            dist[vecin] = dist[nod] + 1;
        }
    }
   }
}

int main(){
    ifstream cin("bfs.in");
    ofstream cout("bfs.out");
    cin >> n >> m >> s;
    for(int i=1; i<=m; i++){
        int x, y;
        cin >> x >> y;
        adj[x].push_back(y);
    }
    for(int i=1; i<=n; i++){
        dist[i]=-1;
    }
    dist[s]=0;
    bfs(s);
    for(int i=1; i<=n; i++){
        cout << dist[i] << ' ';
    }
}