Cod sursa(job #3040584)

Utilizator sasha05Alex Neagu sasha05 Data 30 martie 2023 09:58:01
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int n,m=0,start,x,y;
int a[1001][1001];

int o[1001];
int v[1001];
int d[1001];

void BFS(int start){
    int st=1,dr=1;
    v[start]=1;
    o[dr]=start;
    d[start]=0;
    while(st<=dr){
        int k=o[st];
        for(int i=1;i<=n;++i){
            if(v[i]==0 && a[k][i]==1){
                v[i]=1;
                dr++;
                o[dr]=i;
                d[i]=d[k]+1;
            }
        }
        st++;
    }
}

int main()
{
    fin>>n>>m>>start;
    while(fin>>x>>y){
        a[x][y]=1;
    }
    for(int i=1;i<=n;++i){
        d[i]=-1;
    }
    BFS(start);
    for(int i=1;i<=n;++i){
        fout<<d[i]<<" ";
    }
}