Cod sursa(job #2856370)

Utilizator Undergamerrotariu dragos Undergamer Data 23 februarie 2022 19:31:41
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <fstream>
using namespace std;
ifstream cin("BFS.in");
ofstream cout("BFS.out");
int n,m,p;
int v[102],a[102][102];
int st,dr,coada[1002];
void sortare (int a[102][102],int x)
{
    for (int i=1;i<a[x][0];i++)
    {
        for (int j=i+1;j<=a[x][0];j++)
            if (a[x][i]>a[x][j])
                swap (a[x][i],a[x][j]);
    }
}
void bfs (int p)
{
    if (st<=dr)
    {
        for (int i=1;i<=a[p][0];i++)
            if (v[a[p][i]]==0)
            {
                v[a[p][i]]=1;
                cout<<a[p][i]<<" ";
                dr++;
                coada[dr]=a[p][i];
            }
        st++;
        bfs(coada[st]);
    }
}
int main()
{
    cin>>n>>m>>p;
    for (int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        a[x][0]++;
        a[y][0]++;
        a[x][a[x][0]]=y;
        a[y][a[y][0]]=x;
    }
    for (int i=1;i<=n;i++)
    {
        sortare (a,i);
    }
    v[p]=1;
    st=1,dr=1;
    coada[1]=p;
    cout<<p<<" ";
    bfs(p);
}