Cod sursa(job #3356276)

Utilizator SA727Stiopei Ionut Andrei SA727 Data 30 mai 2026 15:55:11
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int v[100001],x[100001],a[100001][100001],n,m,s,dr,st,k,tata[100001],drum[100001];

void bfs(int start){
    st=dr=1;
    v[start]=1;
    x[1]=start;
    while(st<=dr){
        k=x[st];
        for(int i=1;i<=n;i++){
            if(a[k][i]==1 and v[i]==0){
                v[i]=1;
                x[++dr]=i;
                tata[i]=k;
                drum[i]=drum[k]+1;
            }
        }
        st++;
    }
}

int main(){
    int t,z;
    fin >> n >> m >> s;
    for(int i=1;i<=m;i++){
        fin >> z >> t;
        a[z][t]=1;
    }
    bfs(s);
    for(int i=1;i<=n;i++)
        fout << drum[i] << " ";
    return 0;
}