Cod sursa(job #2926331)

Utilizator ScobanAlinScoban Alin-Gabriel ScobanAlin Data 17 octombrie 2022 18:08:45
Problema BFS - Parcurgere in latime Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include<bits/stdc++.h>
using namespace std;

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

int n,m,s,c[400],inceput,cf,viz[300],x,a,b;
bool ma[300][300];

void bfs(int nod)
{
    while(cf>=inceput)
    {
        x=c[inceput];
        inceput++;
        for(int j=1;j<=n;j++)
        {
            if(ma[x][j]==1 and viz[j]==0)
            {
                viz[j]=viz[x]+1;
                c[++cf]=j;
            }
        }
    }
}

int main()
{
    fin>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        fin>>a>>b;
        ma[a][b]=1;
    }
    c[1]=s;
    inceput++;
    cf++;
    viz[s]=1;
    bfs(s);

    for(int i=1;i<=n;i++)
    {
        fout<<viz[i]-1<<" ";
    }

    return 0;
}