Cod sursa(job #3356277)

Utilizator SA727Stiopei Ionut Andrei SA727 Data 30 mai 2026 15:56:11
Problema BFS - Parcurgere in latime Scor 20
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[10001],x[10001],a[10001][10001],n,m,s,dr,st,k,tata[10001],drum[10001];

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;
}