Cod sursa(job #3259582)

Utilizator WiseAndrei4Vetrila Andrei WiseAndrei4 Data 26 noiembrie 2024 19:38:28
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <queue>
using namespace std;
ifstream fin("dfs.in");
ofstream gout("dfs.out");
int main()
{
    int n,m,x,i,j;
    fin>>n>>m>>x;
    bool v[n][n];
    memset(v,0,sizeof(v));
    while(m--)
    {
        fin>>i>>j;
        v[i-1][j-1]=v[j-1][i-1]=1;
    }
    bool ap[n];
    memset(ap,0,sizeof(ap));
    vector<int>q;
    q.push_back(x-1);
    ap[x-1]=1;
    gout<<x<<' ';
    bool gasit;
    while(!q.empty())
    {
        gasit=false;
        for(i=0; i<n&&!gasit; ++i)if(ap[i]==0&&v[q.back()][i])
            {
                gasit=true;
                ap[i]=1;
                q.push_back(i);
                gout<<1+i<<' ';
            }
        if(!gasit)q.pop_back();
    }
    return 0;
}