Cod sursa(job #3272869)

Utilizator CiubarLoverBaiatu cu Ciubaru CiubarLover Data 31 ianuarie 2025 11:15:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

vector<int> edge[100005];

int n,m,s;
int x,y;

int minDist[100005];
bool visited[100005];

int main() {
    fin>> n >> m >> s;

    for(int i=0;i<m;i++) {
        fin>> x >> y;
        edge[x].push_back(y);
    }

    queue<int> q;
    q.push(s);
    visited[s] = true;

    while(!q.empty()) {
        x = q.front();
        q.pop();

        for(int i=0;i<edge[x].size();i++) {
            if (visited[edge[x][i]]) {
                continue;
            }
            visited[edge[x][i]] = true;
            minDist[edge[x][i]] = minDist[x] + 1;
            q.push(edge[x][i]);
        }
    }

    for(int i=1;i<=n;i++) {
        if(!visited[i]) {
            fout<<-1<<" ";
        }
        else {
            fout<<minDist[i]<<" ";
        }
    }
    return 0;
}